Pyspark.sql.DataFrameReader.csv()
Mit dieser Methode werden die Daten aus der/den CSV-Datei(en) gelesen und im PySpark DataFrame gespeichert. Beim Einlesen von CSV in den DataFrame werden die Optionen übernommen. Wir werden die verschiedenen Optionen anhand von Beispielen im Detail besprechen. Bei der Übergabe von mehr als einer CSV-Datei ist es wichtig, die Dateinamen mit Erweiterung in einer Liste zu übergeben, die durch den Komma-Operator getrennt ist. Wenn Sie nur eine CSV-Datei lesen, ist es nicht erforderlich, den Dateinamen in einer Liste anzugeben.
Syntax:
Einzelne Datei – spark_app.read.csv(‘file.csv’, Optionen …)
Mehrere Dateien – spark_app.read.csv([‘file1.csv’,’file2.csv’,…],options…)
Es kann auch möglich sein, die Optionen und Dateinamen zu trennen.
Einzelne Datei – spark_app.read.options(options…).csv(‘file.csv’)
Mehrere Dateien – spark_app.read.options(options…).csv([‘file1.csv’,’file2.csv’,…])
Installieren Sie die PySpark-Bibliothek, bevor Sie die folgenden Beispiele implementieren.
Pip Pyspark installieren
Nach der erfolgreichen Installation sehen Sie die Ausgabe wie folgt:
Szenario 1: Lesen des CSV-Dateiheaders
Erstellen wir eine CSV-Datei mit dem Namen „person_skill.csv“ mit 5 Datensätzen, die im Folgenden gezeigt wird, und laden sie in den PySpark DataFrame:
Der Header-Parameter wird verwendet, um die Spaltennamen im PySpark DataFrame anzugeben. Es nimmt einen booleschen Wert an. Wenn es „True“ ist, werden die tatsächlichen Spaltennamen, die in der CSV-Datei vorhanden sind, im DataFrame angegeben. Andernfalls werden c0, c1, c2… angegeben und die tatsächlichen Spaltennamen sind eine Zeile. Es empfiehlt sich, den Header-Parameter auf „true“ zu setzen.
Beispiel 1: Header = True
Pyspark importierenaus pyspark.sql SparkSession importieren
linuxhint_spark_app = SparkSession.builder.appName( „Linux-Hinweis“ ).getOrCreate()
# Laden Sie die CSV mit dem Namen „person_skill.csv“ in Skills mit Spaltenbeschriftungen mit Kopfzeile
skills = linuxhint_spark_app.read.csv( 'person_skill.csv' , Header =Wahr)
# Den DataFrame anzeigen
skills.show()
Ausgang:
Erläuterung:
Wir können sehen, dass der PySpark DataFrame aus der CSV-Datei mit angegebenen Spalten und Zeilen erstellt wird.
Verwenden Sie den folgenden Befehl, um die Spalten zu überprüfen:
skills.columns
Beispiel 2: Header = False
Pyspark importierenaus pyspark.sql SparkSession importieren
linuxhint_spark_app = SparkSession.builder.appName( „Linux-Hinweis“ ).getOrCreate()
# Laden Sie die CSV mit dem Namen „person_skill.csv“ in Skills mit Spaltenbeschriftungen ohne Kopfzeile
skills = linuxhint_spark_app.read.csv( 'person_skill.csv' , Header =Falsch)
# Den DataFrame anzeigen
skills.show()
Ausgang:
Erläuterung:
Wir können sehen, dass der PySpark DataFrame aus der CSV-Datei ohne vorhandene Spalten erstellt wird.
Außerdem werden die vorhandenen Spalten als Zeilen im PySpark DataFrame gespeichert.
skills.columns
Verwenden von Read.options.csv()
Jetzt lesen wir die CSV-Datei mit der Methode read.options.csv(). Hier müssen wir die Optionen wie Trennzeichen, Header usw. in den Optionen als Argumente und Dateinamen in csv() übergeben. Übergeben wir den Header-Parameter, indem wir ihn auf „True“ setzen.
Szenario 1:
Pyspark importierenaus pyspark.sql SparkSession importieren
linuxhint_spark_app = SparkSession.builder.appName( „Linux-Hinweis“ ).getOrCreate()
# Verwendung von read.options.csv()
skills = linuxhint_spark_app.read. Optionen ( Header =Wahr).csv( 'person_skill.csv' )
# Den DataFrame anzeigen
skills.show()
Ausgang:
Szenario 2: Lesen des CSV-Dateitrennzeichens
Der Trennzeichenparameter übernimmt das Zeichen, das zum Trennen der einzelnen Felder verwendet wird. Standardmäßig wird ein Komma (,) benötigt. Verwenden wir dieselbe CSV-Datei wie im ersten Szenario und übergeben das Komma („,“) als Trennzeichen.
Pyspark importierenaus pyspark.sql SparkSession importieren
linuxhint_spark_app = SparkSession.builder.appName( „Linux-Hinweis“ ).getOrCreate()
# Verwendung von read.options.csv() mit Trennzeichen zusammen mit Header
skills = linuxhint_spark_app.read. Optionen ( Header =True,Trennzeichen= ',' ).csv( 'person_skill.csv' )
# Den DataFrame anzeigen
skills.show()
Ausgang:
Mehrere Dateien lesen
Bisher haben wir eine einzige CSV-Datei gelesen. Sehen wir uns an, wie man mehr als eine CSV-Datei liest. In diesem Szenario werden die Zeilen in mehreren Dateien in einem einzigen PySpark DataFrame angehängt. Wir müssen lediglich die Dateinamen in einer Liste innerhalb der Methode übergeben.
Beispiel:
Lassen Sie uns die folgenden CSV-Dateien mit den Namen „person_skill.csv“ und „person_skill2.csv“ mit den folgenden Daten haben:
Lesen Sie diese beiden CSV-Dateien und speichern Sie sie in einem einzigen PySpark DataFrame.
Pyspark importierenaus pyspark.sql SparkSession importieren
linuxhint_spark_app = SparkSession.builder.appName( „Linux-Hinweis“ ).getOrCreate()
# Laden Sie 2 CSV-Dateien mit den Namen „person_skill.csv“ und „person_skill2.csv“ in Skills mit Spaltenbeschriftungen mit Kopfzeile
skills = linuxhint_spark_app.read.csv([ 'person_skill.csv' , 'person_skill2.csv' ],sep= ',' , Header =Wahr)
skills.show()
Ausgang:
Erläuterung:
Die erste CSV enthält 6 Datensätze und die zweite CSV enthält 3 Datensätze. Wir können sehen, dass die erste CSV zuerst in den DataFrame geladen wird. Anschließend wird die zweite CSV geladen. Schließlich enthält der PySpark DataFrame 9 Datensätze.
Abschluss
Das Einlesen der CSV in den PySpark DataFrame ist mit der Methode pyspark.sql.DataFrameReader.csv() ganz einfach. Es besteht die Möglichkeit, die Header- und Delimiter-Parameter an diese Methode zu übergeben, um die Spalten und das Format anzugeben. PySpark unterstützt auch das gleichzeitige Lesen mehrerer CSV-Dateien mit den bereitgestellten Methoden und ihren Optionen. In diesem Artikel haben wir uns die Beispiele anhand verschiedener Optionen angesehen. Außerdem haben wir zwei Möglichkeiten gesehen, die Optionen an die Methode zu übergeben.