Pyspark.sql.DataFrameReader.csv()
Metode ini digunakan untuk membaca data dari file CSV dan menyimpannya di PySpark DataFrame. Dibutuhkan opsi saat membaca CSV ke dalam DataFrame. Kami akan membahas opsi yang berbeda dengan contoh secara rinci. Saat mengirimkan lebih dari satu file CSV, penting untuk meneruskan nama file dengan ekstensi dalam daftar yang dipisahkan oleh operator koma. Jika Anda hanya membaca satu file CSV, tidak perlu memberikan nama file dalam daftar.
Sintaksis:
File tunggal - spark_app.read.csv('file.csv', pilihan …)
Banyak file – spark_app.read.csv([‘file1.csv’,’file2.csv’,…],opsi…)
Dimungkinkan juga untuk memisahkan opsi dan nama file.
Berkas tunggal – spark_app.read.options(opsi…).csv('file.csv')
Banyak file – spark_app.read.options(opsi…).csv([‘file1.csv’,’file2.csv’,…])
Instal library PySpark sebelum menerapkan contoh berikut.
pip instal pyspark
Setelah instalasi berhasil, Anda dapat melihat output sebagai berikut:
Skenario 1: Membaca Header Berkas CSV
Mari buat file CSV bernama 'person_skill.csv' dengan 5 record yang ditunjukkan berikut ini dan muat ke dalam PySpark DataFrame:
Parameter header digunakan untuk menentukan nama kolom di PySpark DataFrame. Dibutuhkan nilai Boolean. Jika 'Benar', nama kolom sebenarnya yang ada di file CSV ditentukan dalam DataFrame, Jika tidak, c0, c1, c2… ditentukan dan nama kolom sebenarnya akan berupa baris. Cara terbaik adalah menyetel parameter header ke true.
Contoh 1: Tajuk = Benar
impor pysparkdari pyspark.sql impor SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Petunjuk Linux' ).getOrCreate()
# Muat csv bernama - person_skill.csv ke dalam skill dengan label kolom dengan header
keterampilan = linuxhint_spark_app.read.csv( 'person_skill.csv' , tajuk = Benar)
# Tampilkan DataFrame
keterampilan.tunjukkan()
Keluaran:
Penjelasan:
Kita dapat melihat bahwa PySpark DataFrame dibuat dari file CSV dengan kolom dan baris tertentu.
Gunakan perintah berikut untuk memeriksa kolom:
skill.columns
Contoh 2: Tajuk = Salah
impor pysparkdari pyspark.sql impor SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Petunjuk Linux' ).getOrCreate()
# Muat csv bernama - person_skill.csv ke dalam skill dengan label kolom tanpa header
keterampilan = linuxhint_spark_app.read.csv( 'person_skill.csv' , tajuk =Salah)
# Tampilkan DataFrame
keterampilan.tunjukkan()
Keluaran:
Penjelasan:
Kita dapat melihat bahwa PySpark DataFrame dibuat dari file CSV tanpa kolom yang ada.
Juga, kolom yang ada disimpan sebagai baris di PySpark DataFrame.
skill.columns
Menggunakan Read.options.csv()
Sekarang, kita membaca file CSV menggunakan metode read.options.csv(). Di sini, kita perlu meneruskan opsi seperti pembatas, tajuk, dll di opsi sebagai argumen dan nama file di csv(). Mari lewati parameter header dengan menyetelnya ke 'True'.
Skenario 1:
impor pysparkdari pyspark.sql impor SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Petunjuk Linux' ).getOrCreate()
# Menggunakan read.options.csv()
keterampilan = linuxhint_spark_app.read. pilihan ( tajuk =Benar).csv( 'person_skill.csv' )
# Tampilkan DataFrame
keterampilan.tunjukkan()
Keluaran:
Skenario 2: Membaca Pemisah File CSV
Parameter pembatas mengambil karakter yang digunakan untuk memisahkan setiap bidang. Dibutuhkan koma (,) secara default. Mari gunakan file CSV yang sama yang digunakan dalam skenario pertama dan lewati koma (',') sebagai pembatas.
impor pysparkdari pyspark.sql impor SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Petunjuk Linux' ).getOrCreate()
# Menggunakan read.options.csv() dengan pembatas bersama dengan header
keterampilan = linuxhint_spark_app.read. pilihan ( tajuk =Benar,pembatas= ',' ).csv( 'person_skill.csv' )
# Tampilkan DataFrame
keterampilan.tunjukkan()
Keluaran:
Membaca Banyak File
Hingga saat ini, kami telah membaca satu file CSV. Mari kita lihat cara membaca lebih dari satu file CSV. Dalam skenario ini, baris dalam banyak file ditambahkan dalam satu PySpark DataFrame. Kami hanya perlu meneruskan nama file dalam daftar di dalam metode.
Contoh:
Mari buat file CSV berikut bernama 'person_skill.csv' dan 'person_skill2.csv' dengan data berikut:
Baca dua file CSV ini dan simpan dalam satu PySpark DataFrame.
impor pysparkdari pyspark.sql impor SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'Petunjuk Linux' ).getOrCreate()
# Muat 2 file csv bernama - person_skill.csv dan person_skill2.csv ke dalam skill dengan label kolom dengan header
keterampilan = linuxhint_spark_app.read.csv([ 'person_skill.csv' , 'person_skill2.csv' ],sep= ',' , tajuk = Benar)
keterampilan.tunjukkan()
Keluaran:
Penjelasan:
CSV pertama menyimpan 6 record dan CSV kedua menyimpan 3 record. Kita dapat melihat bahwa CSV pertama dimuat ke dalam DataFrame terlebih dahulu. Kemudian, CSV kedua dimuat. Terakhir, PySpark DataFrame menyimpan 9 catatan.
Kesimpulan
Membaca CSV ke dalam PySpark DataFrame cukup sederhana dengan metode pyspark.sql.DataFrameReader.csv() . Dimungkinkan untuk meneruskan parameter tajuk dan pembatas ke metode ini untuk menentukan kolom dan formatnya. PySpark juga mendukung membaca banyak file CSV sekaligus dengan metode yang disediakan beserta opsinya. Pada artikel ini, kita telah melihat contoh dengan mempertimbangkan opsi yang berbeda. Juga, kami telah melihat dua cara untuk meneruskan opsi ke metode.