Topik Isi:
- PySpark DataFrame ke CSV dengan Mengonversi ke Pandas DataFrame
- PySpark Pandas DataFrame ke CSV Menggunakan Metode To_Csv()
- PySpark Pandas DataFrame ke CSV dengan Mengonversi ke NumPy Array
- PySpark DataFrame ke CSV Menggunakan Metode Write.Csv()
Jika Anda ingin tahu tentang PySpark DataFrame dan pemasangan modul, baca ini artikel .
PySpark DataFrame ke CSV dengan Mengonversi ke Pandas DataFrame
to_csv() adalah metode yang tersedia di modul Pandas yang mengonversi Pandas DataFrame ke CSV. Pertama, kita perlu mengonversi PySpark DataFrame menjadi Pandas DataFrame. Metode toPandas() digunakan untuk melakukan itu. Mari kita lihat sintaks to_csv() beserta parameternya.
Sintaksis:
pandas_dataframe_obj.to_csv(jalur/ 'nama_berkas.csv' , tajuk , indeks, kolom, mode...)
- Kita perlu menentukan nama file dari file CSV. Jika Anda ingin menyimpan CSV yang diunduh di lokasi tertentu di PC Anda, Anda juga dapat menentukan jalur beserta nama filenya.
- Kolom disertakan jika tajuk diatur ke 'True'. Jika Anda tidak memerlukan kolom, setel tajuk ke 'Salah'.
- Indeks ditentukan jika indeks disetel ke 'True'. Jika Anda tidak membutuhkan indeks, setel indeks ke 'False'.
- Parameter kolom mengambil daftar nama kolom di mana kita dapat menentukan kolom mana yang diekstrak ke file CSV.
- Kami dapat menambahkan catatan ke CSV menggunakan parameter mode. Tambahkan – “a” digunakan untuk melakukan ini.
Contoh 1: Dengan Parameter Header dan Indeks
Buat PySpark DataFrame “skills_df” dengan 3 baris dan 4 kolom. Ubah DataFrame ini menjadi CSV dengan terlebih dahulu mengubahnya menjadi Pandas DataFrame.
impor pyspark
dari pyspark.sql impor SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Petunjuk Linux' ).getOrCreate()
# data keterampilan dengan 3 baris dan 4 kolom
keterampilan = [{ 'pengenal' : 123 , 'orang' : 'Sayang' , 'keahlian' : 'lukisan' , 'hadiah' : 25000 },
{ 'pengenal' : 112 , 'orang' : 'Mouni' , 'keahlian' : 'menari' , 'hadiah' : 2000 },
{ 'pengenal' : 153 , 'orang' : 'Tulasi' , 'keahlian' : 'membaca' , 'hadiah' : 1200 }
]
# buat kerangka data keterampilan dari data di atas
skills_df = linuxhint_spark_app.createDataFrame(keterampilan)
skills_df.show()
# Konversikan skills_df ke pandas DataFrame
pandas_skills_df= skills_df.toPandas()
cetak(pandas_skills_df)
# Ubah DataFrame ini menjadi csv dengan header dan index
pandas_skills_df.to_csv( 'pandas_skills1.csv' , tajuk =Benar, indeks=Benar)
Keluaran:
Kita dapat melihat bahwa PySpark DataFrame diubah menjadi Pandas DataFrame. Mari kita lihat apakah itu dikonversi ke CSV dengan nama kolom dan indeks:
Contoh 2: Tambahkan Data ke CSV
Buat satu lagi PySpark DataFrame dengan 1 record dan tambahkan ini ke CSV yang dibuat sebagai bagian dari contoh pertama kita. Pastikan bahwa kita perlu menyetel header ke 'False' bersama dengan parameter mode. Jika tidak, nama kolom juga ditambahkan sebagai baris.
impor pysparkdari pyspark.sql impor SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Petunjuk Linux' ).getOrCreate()
keterampilan = [{ 'pengenal' : 90 , 'orang' : 'Bhargav' , 'keahlian' : 'membaca' , 'hadiah' : 12000 }
]
# buat kerangka data keterampilan dari data di atas
skills_df = linuxhint_spark_app.createDataFrame(keterampilan)
# Konversikan skills_df ke pandas DataFrame
pandas_skills_df= skills_df.toPandas()
# Tambahkan DataFrame ini ke file pandas_skills1.csv
pandas_skills_df.to_csv( 'pandas_skills1.csv' , modus= 'A' , tajuk =Salah)
Keluaran CSV:
Kita dapat melihat bahwa baris baru ditambahkan ke file CSV.
Contoh 3: Dengan Parameter Kolom
Mari kita memiliki DataFrame yang sama dan mengubahnya menjadi CSV dengan dua kolom: 'orang' dan 'hadiah'.
impor pysparkdari pyspark.sql impor SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Petunjuk Linux' ).getOrCreate()
# data keterampilan dengan 3 baris dan 4 kolom
keterampilan = [{ 'pengenal' : 123 , 'orang' : 'Sayang' , 'keahlian' : 'lukisan' , 'hadiah' : 25000 },
{ 'pengenal' : 112 , 'orang' : 'Mouni' , 'keahlian' : 'menari' , 'hadiah' : 2000 },
{ 'pengenal' : 153 , 'orang' : 'Tulasi' , 'keahlian' : 'membaca' , 'hadiah' : 1200 }
]
# buat kerangka data keterampilan dari data di atas
skills_df = linuxhint_spark_app.createDataFrame(keterampilan)
# Konversikan skills_df ke pandas DataFrame
pandas_skills_df= skills_df.toPandas()
# Konversikan DataFrame ini ke csv dengan kolom tertentu
pandas_skills_df.to_csv( 'pandas_skills2.csv' , kolom=[ 'orang' , 'hadiah' ])
Keluaran CSV:
Kita dapat melihat bahwa hanya kolom “orang” dan “hadiah” yang ada di file CSV.
PySpark Pandas DataFrame ke CSV Menggunakan Metode To_Csv()
to_csv() adalah metode yang tersedia di modul Pandas yang mengonversi Pandas DataFrame ke CSV. Pertama, kita perlu mengonversi PySpark DataFrame menjadi Pandas DataFrame. Metode toPandas() digunakan untuk melakukan itu. Mari kita lihat sintaks to_csv() beserta parameternya:
Sintaksis:
pyspark_pandas_dataframe_obj.to_csv(jalur/ 'nama_berkas.csv' , tajuk , indeks, kolom,...)- Kita perlu menentukan nama file dari file CSV. Jika Anda ingin menyimpan CSV yang diunduh di lokasi tertentu di PC Anda, Anda juga dapat menentukan jalur beserta nama filenya.
- Kolom disertakan jika tajuk diatur ke 'True'. Jika Anda tidak memerlukan kolom, setel tajuk ke 'Salah'.
- Indeks ditentukan jika indeks disetel ke 'True'. Jika Anda tidak membutuhkan indeks, setel indeks ke 'False'.
- Parameter kolom mengambil daftar nama kolom di mana kita dapat menentukan kolom mana yang diekstrak ke file CSV.
Contoh 1: Dengan Parameter Kolom
Buat DataFrame PySpark Pandas dengan 3 kolom dan konversikan ke CSV menggunakan to_csv() dengan kolom 'orang' dan 'hadiah'.
dari panda impor pysparkpyspark_pandas_dataframe=pandas.DataFrame({ 'pengenal' :[ 90 , 78 , 90 , 57 ], 'orang' :[ 'Sayang' , 'Mouni' , 'diri' , 'radha' ], 'hadiah' :[ 1 , 2 , 3 , 4 ]})
cetak(pyspark_pandas_dataframe)
# Konversikan DataFrame ini ke csv dengan kolom tertentu
pyspark_pandas_dataframe.to_csv( 'pyspark_pandas1' , kolom=[ 'orang' , 'hadiah' ])
Keluaran:
Kita dapat melihat bahwa DataFrame PySpark Pandas dikonversi ke CSV dengan dua partisi. Setiap partisi memegang 2 catatan. Selain itu, kolom di CSV hanya berisi 'orang' dan 'hadiah'.
File Partisi 1:
File Partisi 2:
Contoh 2: Dengan Parameter Header
Gunakan DataFrame sebelumnya dan tentukan parameter header dengan menyetelnya ke 'True'.
dari panda impor pysparkpyspark_pandas_dataframe=pandas.DataFrame({ 'pengenal' :[ 90 , 78 , 90 , 57 ], 'orang' :[ 'Sayang' , 'Mouni' , 'diri' , 'radha' ], 'hadiah' :[ 1 , 2 , 3 , 4 ]})
# Konversikan DataFrame ini ke csv dengan header.
pyspark_pandas_dataframe.to_csv( 'pyspark_pandas2' , tajuk = Benar)
Keluaran CSV:
Kita dapat melihat bahwa DataFrame PySpark Pandas dikonversi ke CSV dengan dua partisi. Setiap partisi memegang 2 catatan dengan nama kolom.
File Partisi 1:
File Partisi 2:
PySpark Pandas DataFrame ke CSV dengan Mengonversi ke NumPy Array
Kami memiliki opsi untuk mengonversi PySpark Pandas DataFrame ke CSV dengan mengonversinya menjadi larik Numpy. to_numpy() adalah metode yang tersedia dalam modul PySpark Pandas yang mengonversi PySpark Pandas DataFrame ke larik NumPy.
Sintaksis:
pyspark_pandas_dataframe_obj.to_numpy()Itu tidak akan mengambil parameter apa pun.
Menggunakan Metode Tofile()
Setelah mengonversi ke array NumPy, kita dapat menggunakan metode tofile() untuk mengonversi NumPy ke CSV. Di sini, ia menyimpan setiap catatan dalam kolom sel baru dalam file CSV.
Sintaksis:
array_obj.to_numpy(nama file/jalur,sep=’ ’)Dibutuhkan nama file atau jalur CSV dan pemisah.
Contoh:
Buat DataFrame PySpark Pandas dengan 3 kolom dan 4 catatan dan konversikan ke CSV dengan terlebih dahulu mengubahnya menjadi larik NumPy.
dari panda impor pysparkpyspark_pandas_dataframe=pandas.DataFrame({ 'pengenal' :[ 90 , 78 , 90 , 57 ], 'orang' :[ 'Sayang' , 'Mouni' , 'diri' , 'radha' ], 'hadiah' :[ 1 , 2 , 3 , 4 ]})
# Ubah DataFrame di atas menjadi array numpy
dikonversi = pyspark_pandas_dataframe.to_numpy()
cetak (dikonversi)
# Menggunakan tofile()
dikonversi.tofile( 'converted1.csv' , sep = ',' )
Keluaran:
[[ 90 'Sayang' 1 ][ 78 'Mouni' 2 ]
[ 90 'diri' 3 ]
[ 57 'radha' 4 ]]
Kita dapat melihat bahwa DataFrame PySpark Pandas dikonversi menjadi larik NumPy (12 nilai). Jika Anda dapat melihat data CSV, ini menyimpan setiap nilai sel di kolom baru.
PySpark DataFrame ke CSV Menggunakan Metode Write.Csv()
Metode write.csv() mengambil nama file/jalur tempat kita perlu menyimpan file CSV sebagai parameter.
Sintaksis:
dataframe_object.coalesce( 1 ).write.csv( 'nama file' )Sebenarnya, CSV disimpan sebagai partisi (lebih dari satu). Untuk menghilangkan ini, kami menggabungkan semua file CSV yang dipartisi menjadi satu. Dalam skenario ini, kami menggunakan fungsi coalesce(). Sekarang, kita hanya dapat melihat satu file CSV dengan semua baris dari PySpark DataFrame.
Contoh:
Pertimbangkan DataFrame PySpark dengan 4 catatan yang memiliki 4 kolom. Tulis DataFrame ini ke CSV dengan file bernama “market_details”.
impor pysparkdari pyspark.sql impor SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Petunjuk Linux' ).getOrCreate()
# data pasar dengan 4 baris dan 4 kolom
pasar =[{ 'pertengahan' : 'mz-001' , 'nama_m' : 'ABC' , 'm_city' : 'delhi' , 'm_status' : 'delhi' },
{ 'pertengahan' : 'mz-002' , 'nama_m' : 'XYZ' , 'm_city' : 'patna' , 'm_status' : 'keberuntungan' },
{ 'pertengahan' : 'mz-003' , 'nama_m' : 'PQR' , 'm_city' : 'florida' , 'm_status' : 'satu' },
{ 'pertengahan' : 'mz-004' , 'nama_m' : 'ABC' , 'm_city' : 'delhi' , 'm_status' : 'keberuntungan' }
]
# buat kerangka data pasar dari data di atas
market_df = linuxhint_spark_app.createDataFrame(pasar)
# Data pasar aktual
market_df.show()
# tulis.csv()
pasar_df.menyatu( 1 ).write.csv( 'detail_pasar' )
Keluaran:
Mari kita periksa file:
Buka file terakhir untuk melihat catatan.
Kesimpulan
Kami mempelajari empat skenario berbeda yang mengonversi PySpark DataFrame ke CSV dengan contoh dengan mempertimbangkan parameter yang berbeda. Saat Anda bekerja dengan PySpark DataFrame, Anda memiliki dua opsi untuk mengonversi DataFrame ini ke CSV: satu cara menggunakan metode write() dan cara lainnya menggunakan metode to_csv() dengan mengonversi ke Pandas DataFrame. Jika Anda bekerja dengan PySpark Pandas DataFrame, Anda juga dapat menggunakan to_csv() dan tofile() dengan mengonversi ke larik NumPy.