Udostępnij przez


from_csv

Analizuje kolumnę zawierającą ciąg CSV, przekształcając go w wiersz zgodny z określonym schematem. Zwraca wartość null , jeśli nie można przeanalizować ciągu.

Składnia

from pyspark.sql import functions as sf

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

Parametry

Parameter Typ Description
col pyspark.sql.Column lub str Nazwa kolumny lub kolumny w formacie CSV.
schema pyspark.sql.Column lub str Kolumna lub literał ciągu języka Python ze schematem w formacie DDL do użycia podczas analizowania kolumny CSV.
options dict, opcjonalnie Opcje kontrolowania analizowania. Akceptuje te same opcje co źródło danych CSV.

Zwraca

pyspark.sql.Column: kolumna przeanalizowanych wartości CSV.

Przykłady

Przykład 1. Analizowanie prostego ciągu CSV

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}|
+---------------+

Przykład 2. Używanie schema_of_csv do wnioskowania schematu

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}|
+---------------+

Przykład 3. Ignorowanie wiodącego odstępu w ciągu CSV

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}|
+---------------+

Przykład 4. Analizowanie ciągu CSV z brakującą wartością

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}|
+---------------+

Przykład 5. Analizowanie ciągu CSV za pomocą innego ogranicznika

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}|
+---------------+