0 ddl json apache-spark apache-spark-sql pyspark
我试图在 pyspark 中定义嵌套 .json 模式,但无法使 ddl_schema 字符串正常工作。
通常在 SQL 中这将是 ROW,我已经尝试过下面的 STRUCT 但无法获得正确的数据类型,这是错误......
ParseException:
mismatched input '(' expecting {<EOF>, ',', 'COMMENT', NOT}(line 6, pos 15)
== SQL ==
driverId INT,
driverRef STRING,
number STRING,
code STRING,
name STRUCT(forename STRING, surname STRING),
---------------^^^
dob DATE,
nationality STRING,
url STRING
Run Code Online (Sandbox Code Playgroud)
+--------+----------+------+----+--------------------+----------+-----------+--------------------+
|driverId| driverRef|number|code| name| dob|nationality| url|
+--------+----------+------+----+--------------------+----------+-----------+--------------------+
| 1| hamilton| 44| HAM| {Lewis, Hamilton}|1985-01-07| British|http://en.wikiped...|
Run Code Online (Sandbox Code Playgroud)
+--------+----------+------+----+--------------------+----------+-----------+--------------------+
|driverId| driverRef|number|code| name| dob|nationality| url|
+--------+----------+------+----+--------------------+----------+-----------+--------------------+
| 1| hamilton| 44| HAM| {Lewis, Hamilton}|1985-01-07| British|http://en.wikiped...|
Run Code Online (Sandbox Code Playgroud)
您对 STRUCT 使用了错误的语法。
\n这是正确的:
name STRUCT<forename:STRING,surname:STRING>\n
Run Code Online (Sandbox Code Playgroud)\nhttps://spark.apache.org/docs/latest/sql-ref-datatypes.html
\n(搜索Complex types
并选择 SQL 选项卡)
数据类型 | SQL名称 |
---|---|
布尔类型 | 布尔值 |
字节类型 | 字节、小整型 |
短型 | 短小号 |
整数类型 | 整型、整数 |
长类型 | 长整型 |
浮点型 | 浮动,实数 |
双型 | 双倍的 |
日期类型 | 日期 |
时间戳类型 | 时间戳 |
字符串类型 | 细绳 |
二进制类型 | 二进制 |
小数类型 | 小数、DEC、数字 |
年月间隔类型 | 间隔年、间隔年到月、间隔月 |
DayTimeInterval类型 | 间隔日、间隔日到小时、间隔日到分钟、间隔日到秒、间隔小时、间隔小时到分钟、间隔小时到秒、间隔分钟、间隔分钟到秒、间隔秒 |
数组类型 | 数组<元素类型> |
结构体类型 | STRUCT<field1_name: field1_type, field2_name: field2_type, \xe2\x80\xa6> 注意:\xe2\x80\x98:\xe2\x80\x99 是可选的。 |
地图类型 | MAP<键类型,值类型> |
归档时间: |
|
查看次数: |
3350 次 |
最近记录: |