分析 CSV 字符串,并推断其架构(采用 DDL 格式)。
Syntax
from pyspark.sql import functions as sf
sf.schema_of_csv(csv, options=None)
参数
| 参数 | 类型 | Description |
|---|---|---|
csv |
pyspark.sql.Column 或 str |
包含 CSV 字符串的 CSV 字符串或可折叠字符串列。 |
options |
dict,可选 | 用于控制分析的选项。 接受与 CSV 数据源相同的选项。 |
退货
pyspark.sql.Column:从给定 CSV 分析的字符串表示形式 StructType 。
例子
示例 1:推断具有不同数据类型的 CSV 字符串的架构
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>|
+-------------------------------------------+
示例 2:推断包含缺失值的 CSV 字符串的架构
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>|
+-------------------------------------------+
示例 3:使用不同的分隔符推断 CSV 字符串的架构
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>|
+-------------------------------------------+
示例 4:使用带引号的字段推断 CSV 字符串的架构
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>|
+-------------------------------------------+