Pular para o conteúdo principal

esquema_de_csv

Analisa uma string CSV e infere seu esquema no formato DDL.

Sintaxe

Python
from pyspark.sql import functions as sf

sf.schema_of_csv(csv, options=None)

Parâmetros

Parâmetro

Tipo

Descrição

csv

pyspark.sql.Column ou str

Uma coluna de strings CSV ou uma coluna de strings dobrável contendo strings 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.Column: Uma representação em string de um StructType analisado a partir do CSV fornecido.

Exemplos

Exemplo 1 : Inferindo o esquema de strings CSV com diferentes tipos de dados

Python
from pyspark.sql import functions as sf
df = spark.range(1)
df.select(sf.schema_of_csv(sf.lit('1|a|true'), {'sep':'|'})).show(truncate=False)
Output
+-------------------------------------------+
|schema_of_csv(1|a|true) |
+-------------------------------------------+
|STRUCT<_c0: INT, _c1: STRING, _c2: BOOLEAN>|
+-------------------------------------------+

Exemplo 2 : Inferindo o esquema de strings CSV com valores ausentes

Python
from pyspark.sql import functions as sf
df = spark.range(1)
df.select(sf.schema_of_csv(sf.lit('1||true'), {'sep':'|'})).show(truncate=False)
Output
+-------------------------------------------+
|schema_of_csv(1||true) |
+-------------------------------------------+
|STRUCT<_c0: INT, _c1: STRING, _c2: BOOLEAN>|
+-------------------------------------------+

Exemplo 3 : Inferindo o esquema de strings CSV com um delimitador diferente

Python
from pyspark.sql import functions as sf
df = spark.range(1)
df.select(sf.schema_of_csv(sf.lit('1;a;true'), {'sep':';'})).show(truncate=False)
Output
+-------------------------------------------+
|schema_of_csv(1;a;true) |
+-------------------------------------------+
|STRUCT<_c0: INT, _c1: STRING, _c2: BOOLEAN>|
+-------------------------------------------+

Exemplo 4 : Inferindo o esquema de strings CSV com campos entre aspas

Python
from pyspark.sql import functions as sf
df = spark.range(1)
df.select(sf.schema_of_csv(sf.lit('"1","a","true"'), {'sep':','})).show(truncate=False)
Output
+-------------------------------------------+
|schema_of_csv("1","a","true") |
+-------------------------------------------+
|STRUCT<_c0: INT, _c1: STRING, _c2: BOOLEAN>|
+-------------------------------------------+