Wie kann ich eine CSV-Datei in pyspark-Datenrahmen importieren? Ich habe sogar versucht, eine CSV-Datei in Pandas zu lesen und sie dann mit createDataFrame in einen Spark-Datenrahmen zu konvertieren, aber es wird immer noch ein Fehler angezeigt. Kann mich jemand durch das führen? Bitte sagen Sie mir auch, wie ich eine XLSX-Datei importieren kann. Ich versuche, CSV-Inhalte in Pandas-Datenrahmen zu importieren und sie dann in Spark-Datenrahmen zu konvertieren, aber es wird der Fehler angezeigt:
"Py4JJavaError" An error occurred while calling o28.applySchemaToPythonRDD. : java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
Mein Code lautet:
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)
Antworten:
"Wie kann ich eine CSV-Datei in pyspark-Datenrahmen importieren?" - Es gibt viele Möglichkeiten, dies zu tun. Am einfachsten wäre es, pyspark mit dem Spark-CSV-Modul von Databrick zu starten. Sie können dies tun, indem Sie pyspark mit starten
Dann können Sie die folgenden Schritte ausführen:
Die andere Methode wäre, die Textdatei als rdd mit einzulesen
Transformieren Sie dann Ihre Daten so, dass jedes Element das richtige Format für das Schema hat (z. B. Ints, Strings, Floats usw.). Sie möchten dann verwenden
Referenz: http://spark.apache.org/docs/1.6.1/api/python/pyspark.sql.html#pyspark.sql.Row
"Bitte sagen Sie mir auch, wie ich eine XLSX-Datei importieren kann." - Excel-Dateien werden in "Big Data" nicht verwendet. Spark soll mit großen Dateien oder Datenbanken verwendet werden. Wenn Sie eine Excel-Datei mit einer Größe von 50 GB haben, machen Sie etwas falsch. Excel wäre nicht einmal in der Lage, eine Datei dieser Größe zu öffnen. Nach meiner Erfahrung stirbt alles über 20 MB und Excel.
quelle
Folgendes hat bei mir gut funktioniert:
quelle
Ich habe in meinem lokalen Verzeichnis eine Datei 'temp.csv'. Von dort aus mache ich mit einer lokalen Instanz Folgendes:
D0 ist also die Rohtextdatei, die wir an eine Spark-RDD senden. Damit Sie einen Datenrahmen erstellen können, möchten Sie die CSV-Datei aufteilen und jeden Eintrag wie beim Erstellen von d1 als Zeilentyp festlegen. Der letzte Schritt besteht darin, den Datenrahmen aus dem RDD zu erstellen.
quelle
Sie können das Paket spark-csv von DataBricks verwenden, das viele Dinge automatisch für Sie erledigt, z. B. die Pflege des Headers, die Verwendung von Escape-Zeichen, das automatische Ableiten von Schemas usw. Ab Spark 2.0 gibt es eine eingebaute Funktion für den Umgang mit CSVs.
quelle