Jak mogę zaimportować plik .csv do ramek danych pyspark? Próbowałem nawet odczytać plik csv w Pandas, a następnie przekonwertować go na ramkę danych Spark za pomocą createDataFrame, ale nadal pojawia się jakiś błąd. Czy ktoś może mnie przez to poprowadzić? Powiedz mi też, jak mogę zaimportować plik xlsx? Próbuję zaimportować zawartość CSV do ramek danych Panda, a następnie przekonwertować ją na ramki danych Spark, ale wyświetla błąd:
"Py4JJavaError" An error occurred while calling o28.applySchemaToPythonRDD. : java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
Mój kod to:
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)
Odpowiedzi:
„Jak mogę zaimportować plik .csv do ramek danych pyspark?” -- Istnieje wiele sposobów, aby to zrobić; najprostszym byłoby uruchomienie pyspark z modułem Spark-csv Databrick. Możesz to zrobić, uruchamiając pyspark
następnie możesz wykonać następujące kroki:
Inną metodą byłoby odczytanie z pliku tekstowego jako pliku rdd
Następnie przekształć dane, aby każdy element miał poprawny format schematu (tj. Ints, Strings, Floats itp.). Będziesz wtedy chciał użyć
Odniesienie: http://spark.apache.org/docs/1.6.1/api/python/pyspark.sql.html#pyspark.sql.Row
„Powiedz mi też, jak mogę zaimportować plik xlsx?” - Pliki Excel nie są używane w „Big Data”; Spark jest przeznaczony do użytku z dużymi plikami lub bazami danych. Jeśli masz plik Excel o rozmiarze 50 GB, robisz coś źle. Excel nawet nie byłby w stanie otworzyć pliku o takim rozmiarze; z mojego doświadczenia wynika, że wszystko powyżej 20 MB i Excel umiera.
źródło
Następujące działało dla mnie dobrze:
źródło
Mam w moim katalogu lokalnym plik „temp.csv”. Stamtąd za pomocą lokalnej instancji wykonuję następujące czynności:
Więc d0 to nieprzetworzony plik tekstowy, który wysyłamy do iskry RDD. Aby stworzyć ramkę danych, chcesz rozdzielić plik csv i uczynić każdy wpis typem wiersza, tak jak ja podczas tworzenia d1. Ostatnim krokiem jest utworzenie ramki danych z RDD.
źródło
Możesz użyć pakietu spark-csv firmy DataBricks, który automatycznie wykonuje wiele czynności, takich jak dbanie o nagłówek, używanie znaków zmiany znaczenia, automatyczne wnioskowanie o schemacie itp. Począwszy od Spark 2.0 jest wbudowana funkcja do obsługi CSV.
źródło