Compartir vía


schema_of_csv

Analiza una cadena CSV e deduce su esquema en formato DDL.

Syntax

from pyspark.sql import functions as sf

sf.schema_of_csv(csv, options=None)

Parámetros

Parámetro Tipo Description
csv pyspark.sql.Column o str Una cadena CSV o una columna de cadena plegable que contiene una cadena 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 representación de cadena de un StructType objeto analizado a partir del CSV especificado.

Examples

Ejemplo 1: inferencia del esquema de una cadena CSV con distintos tipos de datos

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)
+-------------------------------------------+
|schema_of_csv(1|a|true)                    |
+-------------------------------------------+
|STRUCT<_c0: INT, _c1: STRING, _c2: BOOLEAN>|
+-------------------------------------------+

Ejemplo 2: inferencia del esquema de una cadena CSV con valores que faltan

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)
+-------------------------------------------+
|schema_of_csv(1||true)                     |
+-------------------------------------------+
|STRUCT<_c0: INT, _c1: STRING, _c2: BOOLEAN>|
+-------------------------------------------+

Ejemplo 3: Inferencia del esquema de una cadena CSV con un delimitador diferente

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)
+-------------------------------------------+
|schema_of_csv(1;a;true)                    |
+-------------------------------------------+
|STRUCT<_c0: INT, _c1: STRING, _c2: BOOLEAN>|
+-------------------------------------------+

Ejemplo 4: inferencia del esquema de una cadena CSV con campos entre comillas

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)
+-------------------------------------------+
|schema_of_csv("1","a","true")              |
+-------------------------------------------+
|STRUCT<_c0: INT, _c1: STRING, _c2: BOOLEAN>|
+-------------------------------------------+