Freigeben über


from_csv

Analysiert eine Spalte, die eine CSV-Zeichenfolge enthält, in eine Zeile mit dem angegebenen Schema. Gibt zurück null , wenn die Zeichenfolge nicht analysiert werden kann.

Syntax

from pyspark.sql import functions as sf

sf.from_csv(col, schema, options=None)

Die Parameter

Parameter Typ Description
col pyspark.sql.Column oder str Ein Spalten- oder Spaltenname im CSV-Format.
schema pyspark.sql.Column oder str Eine Spalte oder ein Python-Zeichenfolgenliteral mit Schema im DDL-Format, das beim Analysieren der CSV-Spalte verwendet werden soll.
options Diktat, optional Optionen zum Steuern der Analyse. Akzeptiert die gleichen Optionen wie die CSV-Datenquelle.

Rückkehr

pyspark.sql.Column: Eine Spalte mit analysierten CSV-Werten.

Examples

Beispiel 1: Analysieren einer einfachen CSV-Zeichenfolge

from pyspark.sql import functions as sf
data = [("1,2,3",)]
df = spark.createDataFrame(data, ("value",))
df.select(sf.from_csv(df.value, "a INT, b INT, c INT")).show()
+---------------+
|from_csv(value)|
+---------------+
|      {1, 2, 3}|
+---------------+

Beispiel 2: Verwenden von schema_of_csv zum Ableiten des Schemas

from pyspark.sql import functions as sf
data = [("1,2,3",)]
value = data[0][0]
df.select(sf.from_csv(df.value, sf.schema_of_csv(value))).show()
+---------------+
|from_csv(value)|
+---------------+
|      {1, 2, 3}|
+---------------+

Beispiel 3: Ignorieren des führenden Leerzeichens in der CSV-Zeichenfolge

from pyspark.sql import functions as sf
data = [("   abc",)]
df = spark.createDataFrame(data, ("value",))
options = {'ignoreLeadingWhiteSpace': True}
df.select(sf.from_csv(df.value, "s string", options)).show()
+---------------+
|from_csv(value)|
+---------------+
|          {abc}|
+---------------+

Beispiel 4: Analysieren einer CSV-Zeichenfolge mit einem fehlenden Wert

from pyspark.sql import functions as sf
data = [("1,2,",)]
df = spark.createDataFrame(data, ("value",))
df.select(sf.from_csv(df.value, "a INT, b INT, c INT")).show()
+---------------+
|from_csv(value)|
+---------------+
|   {1, 2, NULL}|
+---------------+

Beispiel 5: Analysieren einer CSV-Zeichenfolge mit einem anderen Trennzeichen

from pyspark.sql import functions as sf
data = [("1;2;3",)]
df = spark.createDataFrame(data, ("value",))
options = {'delimiter': ';'}
df.select(sf.from_csv(df.value, "a INT, b INT, c INT", options)).show()
+---------------+
|from_csv(value)|
+---------------+
|      {1, 2, 3}|
+---------------+