Compartir vía


from_csv

Analiza una columna que contiene una cadena CSV en una fila con el esquema especificado. Devuelve null si no se puede analizar la cadena.

Syntax

from pyspark.sql import functions as sf

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

Parámetros

Parámetro Tipo Description
col pyspark.sql.Column o str Un nombre de columna o columna en formato CSV.
schema pyspark.sql.Column o str Columna, o literal de cadena de Python con esquema en formato DDL, para usarlo al analizar la columna CSV.
options dict, opcional Opciones para controlar el análisis. Acepta las mismas opciones que el origen de datos CSV.

Devoluciones

pyspark.sql.Column: una columna de valores CSV analizados.

Examples

Ejemplo 1: Análisis de una cadena CSV simple

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

Ejemplo 2: Uso de schema_of_csv para deducir el esquema

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

Ejemplo 3: Omitir el espacio en blanco inicial en la cadena 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}|
+---------------+

Ejemplo 4: Análisis de una cadena CSV con un valor que falta

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

Ejemplo 5: Análisis de una cadena CSV con un delimitador diferente

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