Pular para o conteúdo principal

de_csv

Analisa uma coluna contendo strings CSV e a transforma em uma linha com o esquema especificado. Retorna null se as strings não puderem ser analisadas.

Sintaxe

Python
from pyspark.sql import functions as sf

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

Parâmetros

Parâmetro

Tipo

Descrição

col

pyspark.sql.Column ou str

Uma coluna ou nome de coluna em formato CSV.

schema

pyspark.sql.Column ou str

Uma coluna, ou strings literais Python com esquema no formato DDL, para usar ao analisar a coluna CSV .

options

dicionário, opcional

Opções para controlar a análise sintática. Aceita as mesmas opções que a fonte de dados CSV.

Devoluções

pyspark.sql.ColumnUma coluna contendo valores CSV analisados.

Exemplos

Exemplo 1 : Analisando strings CSV simples

Python
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()
Output
+---------------+
|from_csv(value)|
+---------------+
| {1, 2, 3}|
+---------------+

Exemplo 2 : Usando schema_of_csv para inferir o esquema

Python
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()
Output
+---------------+
|from_csv(value)|
+---------------+
| {1, 2, 3}|
+---------------+

Exemplo 3 : Ignorando espaços em branco iniciais em strings CSV

Python
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()
Output
+---------------+
|from_csv(value)|
+---------------+
| {abc}|
+---------------+

Exemplo 4 : Analisando strings CSV com um valor ausente

Python
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()
Output
+---------------+
|from_csv(value)|
+---------------+
| {1, 2, NULL}|
+---------------+

Exemplo 5 : Analisando strings CSV com um delimitador diferente

Python
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()
Output
+---------------+
|from_csv(value)|
+---------------+
| {1, 2, 3}|
+---------------+