Bagaimana saya bisa mengimpor file .csv ke dalam dataframe pyspark? Saya bahkan mencoba membaca file csv di Pandas dan kemudian mengubahnya menjadi dataframe percikan menggunakan createDataFrame, tetapi masih menunjukkan beberapa kesalahan. Bisakah seseorang membimbing saya melalui ini? Juga, tolong beri tahu saya bagaimana cara mengimpor file xlsx? Saya mencoba mengimpor konten csv ke dalam kerangka data panda dan kemudian mengonversinya menjadi bingkai data percikan, tetapi menunjukkan kesalahan:
"Py4JJavaError" An error occurred while calling o28.applySchemaToPythonRDD. : java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
Kode saya adalah:
from pyspark import SparkContext
from pyspark.sql import SQLContext
import pandas as pd
sqlc=SQLContext(sc)
df=pd.read_csv(r'D:\BestBuy\train.csv')
sdf=sqlc.createDataFrame(df)
Jawaban:
"Bagaimana saya bisa mengimpor file .csv ke dalam kerangka data pyspark?" - ada banyak cara untuk melakukan ini; yang paling sederhana adalah memulai pyspark dengan modul spark-csv Databrick. Anda dapat melakukan ini dengan memulai pyspark dengan
maka Anda dapat mengikuti langkah-langkah berikut:
Metode lain adalah membaca dalam file teks sebagai rdd menggunakan
Kemudian ubah data Anda sehingga setiap item dalam format yang benar untuk skema (yaitu Ints, Strings, Floats, dll.). Anda ingin menggunakannya
Referensi: http://spark.apache.org/docs/1.6.1/api/python/pyspark.sql.html#pyspark.sql.Row
"Juga, tolong beri tahu saya bagaimana saya bisa mengimpor file xlsx?" - File Excel tidak digunakan dalam "Big Data"; Spark dimaksudkan untuk digunakan dengan file besar atau database. Jika Anda memiliki file Excel yang berukuran 50GB, maka Anda melakukan kesalahan. Excel bahkan tidak akan bisa membuka file sebesar itu; dari pengalaman saya, apa pun di atas 20MB dan Excel mati.
sumber
Berikut ini bekerja dengan baik untuk saya:
sumber
Di direktori lokal saya ada file 'temp.csv'. Dari sana, menggunakan instance lokal saya melakukan hal berikut:
Jadi d0 adalah file teks mentah yang kami kirim ke RDD percikan. Agar Anda dapat membuat bingkai data, Anda ingin memecah csv terpisah, dan membuat setiap entri menjadi tipe baris, seperti yang saya lakukan saat membuat d1. Langkah terakhir adalah membuat frame data dari RDD.
sumber
Anda dapat menggunakan paket spark-csv oleh DataBricks yang melakukan banyak hal untuk Anda secara otomatis, seperti merawat header, menggunakan karakter pelarian, skema otomatis yang menyimpulkan dan sebagainya. Mulai dari Spark 2.0 ada fungsi bawaan untuk berurusan dengan CSV.
sumber