Condividi tramite


from_csv

Analizza una colonna contenente una stringa CSV in una riga con lo schema specificato. Restituisce null se la stringa non può essere analizzata.

Sintassi

from pyspark.sql import functions as sf

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

Parametri

Parametro TIPO Description
col pyspark.sql.Column o str Nome di colonna o colonna in formato CSV.
schema pyspark.sql.Column o str Valore letterale stringa Python o colonna con schema in formato DDL da usare durante l'analisi della colonna CSV.
options dict, facoltativo Opzioni per controllare l'analisi. Accetta le stesse opzioni dell'origine dati CSV.

Restituzioni

pyspark.sql.Column: colonna di valori CSV analizzati.

Esempi

Esempio 1: Analisi di una stringa CSV semplice

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

Esempio 2: Uso di schema_of_csv per dedurre lo schema

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

Esempio 3: Ignorare gli spazi vuoti iniziali nella stringa 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}|
+---------------+

Esempio 4: Analisi di una stringa CSV con un valore mancante

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

Esempio 5: Analisi di una stringa CSV con un delimitatore diverso

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