PySpark CSV lesen()

Pyspark Csv Lesen



Das Erstellen des PySpark DataFrame aus den CSV-Daten ist in PySpark mit der Funktion read.csv() möglich. Wenn Sie in einigen Szenarien die externen Daten in den PySpark DataFrame laden möchten, unterstützt PySpark viele Formate wie JSON, CSV usw. In diesem Tutorial erfahren Sie, wie Sie die CSV-Daten lesen und in den PySpark DataFrame laden. Außerdem besprechen wir anhand von Beispielen das gleichzeitige Laden mehrerer CSV-Dateien in einem einzelnen DataFrame.

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 importieren

aus 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 importieren

aus 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 importieren

aus 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 importieren

aus 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 importieren

aus 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.