jsonStr
:指定 json 文档的 STRING 表达式。
schema
:
schema_of_json 函数
的 STRING 表达式或调用。
options
:指定指令的可选 MAP<STRING,STRING> 字面量。
在 Databricks Runtime 12.2 之前的版本中,
schema
必须是字面量。
一个结构,其字段名称和类型与架构定义匹配。
jsonStr
在
schema
和
options
方面的格式应正确。
schema
必须定义为逗号分隔的列名称和数据类型对(例如,与在
CREATE TABLE
中使用一样)。
如果提供,
options
可以是下列任何内容:
primitivesAsString
(默认值为
false
):将所有基元值推断为字符串类型。
prefersDecimal
(默认值为
false
):将所有浮点值推断为十进制类型。 如果这些值不适合十进制,那么它会将这些值推断为双精度值。
allowComments
(默认值为
false
):忽略 JSON 记录中的 Java 和 C++ 样式注释。
allowUnquotedFieldNames
(默认值为
false
):允许不带引号的 JSON 字段名称。
allowSingleQuotes
(默认值为
true
):除了双引号外,还允许单引号。
allowNumericLeadingZeros
(默认值为
false
):允许数字有前导零(例如,
00012
)。
allowBackslashEscapingAnyCharacter
(默认值为
false
):允许使用反斜杠引用机制接受所有字符的引用。
allowUnquotedControlChars
(默认值为
false
):允许 JSON 字符串包含或不包含不带引号的控制字符(值小于 32 的 ASCII 字符,包括制表符和换行符)。
mode
(默认值为
PERMISSIVE
):允许采用在分析期间处理损坏记录的模式。
PERMISSIVE
:遇到损坏的记录时,将格式错误的字符串放入由
columnNameOfCorruptRecord
配置的字段中,并将格式错误的字段设置为 null。 若要保留损坏的记录,可以在用户定义的架构中设置名为
columnNameOfCorruptRecord
的字符串类型字段。 如果架构没有该字段,则会在分析期间删除损坏的记录。 推理架构时,它会在输出架构中隐式添加
columnNameOfCorruptRecord
字段。
FAILFAST
:遇到损坏的记录时引发异常。
columnNameOfCorruptRecord
(默认值为
spark.sql.columnNameOfCorruptRecord
中指定的值):允许重命名包含
PERMISSIVE
模式创建的错误格式字符串的新字段。 这会替代
spark.sql.columnNameOfCorruptRecord
。
dateFormat
(默认值为
yyyy-MM-dd
):设置指示日期格式的字符串。 自定义日期格式遵循
日期/时间模式
中的格式。 这适用于日期类型。
timestampFormat
(默认值为
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]
):设置指示时间戳格式的字符串。 自定义日期格式遵循
日期/时间模式
中的格式。 这适用于时间戳类型。
multiLine
(默认值为
false
):按每个文件分析一个记录,该记录可能跨多行。
encoding
(默认情况下未设置):允许为 JSON 文件强制设置标准的基本或扩展编码之一。 例如 UTF-16BE、UTF-32LE。 如果未指定编码且
multiLine
设置为
true
,则会自动检测。
lineSep
(默认值涵盖所有
\r
、
\r\n
和
\n
):定义要用于分析的行分隔符。
samplingRatio
(默认值为 1.0):定义用于架构推理的输入 JSON 对象的比例。
dropFieldIfAllNull
(默认值为
false
):在架构推理期间是否忽略所有 null 值或空数组/结构的列。
locale
(默认值为
en-US
):将某个区域设置
sets
为 IETF BCP 47 格式的语言标记。 例如,在分析日期和时间戳时使用。
allowNonNumericNumbers
(默认值为
true
):允许 JSON 分析器将非数值 (
NaN
) 令牌集识别为合法的浮点数值:
-
+INF
表示正无穷大,以及
+Infinity
和
Infinity
的别名。
-
-INF
表示负无穷大,
-Infinity
的别名。
-
NaN
用于其他非数值,例如除以零的结果。
> SELECT from_json('{"a":1, "b":0.8}', 'a INT, b DOUBLE');
{1,0.8}
> SELECT from_json('{"time":"26/08/2015"}', 'time Timestamp', map('timestampFormat', 'dd/MM/yyyy'));
{2015-08-26 00:00:00}
: 运算符
from_csv 函数
schema_of_json 函数
schema_of_csv 函数
to_csv 函数
to_json 函数
json_object_keys 函数
json_array_length 函数
JSON 路径表达式
json_tuple 表值生成器函数
from_json 函数
get_json_object 函数