Compartilhar via


from_csv

Analisa uma coluna que contém uma cadeia de caracteres CSV em uma linha com o esquema especificado. Retorna null se a cadeia de caracteres não puder ser analisada.

Sintaxe

from pyspark.sql import functions as sf

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

Parâmetros

Parâmetro Tipo Description
col pyspark.sql.Column ou str Um nome de coluna ou coluna no formato CSV.
schema pyspark.sql.Column ou str Uma coluna ou literal de cadeia de caracteres python com esquema no formato DDL, a ser usado ao analisar a coluna CSV.
options ditado, opcional Opções para controlar a análise. Aceita as mesmas opções que a fonte de dados CSV.

Devoluções

pyspark.sql.Column: uma coluna de valores CSV analisados.

Exemplos

Exemplo 1: analisando uma cadeia de caracteres CSV simples

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

Exemplo 2: Usando schema_of_csv para inferir o 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}|
+---------------+

Exemplo 3: Ignorando o espaço em branco à esquerda na cadeia de caracteres 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}|
+---------------+

Exemplo 4: analisando uma cadeia de caracteres CSV com um valor ausente

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

Exemplo 5: analisando uma cadeia de caracteres CSV com um 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}|
+---------------+