from_json
函数
适用于:砖的SQL砖运行时
返回一个结构体的价值jsonStr
和模式
。
参数
jsonStr
指定一个json文档:一个字符串表达式。模式
:一个字符串表达式或调用schema_of_json函数。选项
:一个可选的地图<字符串,字符串>文字指定指令。
之前砖12.2运行时模式
必须是文字。
返回
一个结构体字段名称和类型匹配的模式定义。
jsonStr
应该是格式良好的对吗模式
和选项
。模式
必须定义为逗号分隔列名称和数据类型对用于例如创建表
。
选项
如果提供,可以有下列:
primitivesAsString
(默认假
):推断所有原始值作为字符串类型。prefersDecimal
(默认假
):推断所有浮点值作为一个十进制类型。如果在十进制值不符合,那么它推断双打。allowComments
(默认假
):忽略了Java和c++风格的评论在JSON记录。allowUnquotedFieldNames
(默认假
):允许非挂牌JSON字段名称。allowSingleQuotes
(默认真正的
):允许单引号除了双引号。allowNumericLeadingZeros
(默认假
):允许前导零的数字(例如,00012年
)。allowBackslashEscapingAnyCharacter
(默认假
):允许接受所有使用反斜杠字符引用的引用机制。allowUnquotedControlChars
(默认假
):JSON字符串可以包含非挂牌控制字符(ASCII字符值小于32,包括选项卡并换行字符)。模式
(默认宽容的
):允许一个模式来处理腐败记录在解析。宽容的
开会时:一个损坏的记录,把畸形的字符串字段进行配置columnNameOfCorruptRecord
,畸形的字段设置为null。继续腐败记录,您可以设置一个字符串类型字段命名columnNameOfCorruptRecord
在一个用户定义的模式。如果一个模式没有字段,它滴腐败在解析记录。推断一个模式时,隐式地添加一个columnNameOfCorruptRecord
在一个输出模式。FAILFAST
:开会时将抛出一个异常损坏的记录。
columnNameOfCorruptRecord
(缺省为指定的值spark.sql.columnNameOfCorruptRecord
):允许重命名新领域有畸形的字符串创建的宽容的
模式。这将覆盖spark.sql.columnNameOfCorruptRecord
。dateFormat
(默认yyyy-MM-dd
):集表示日期格式的字符串。自定义日期格式按照格式Datetime模式。这适用于日期类型。timestampFormat
(默认yyyy-MM-dd 'HH: mm: ss [.SSS] [XXX]
):设置显示时间戳格式的字符串。自定义日期格式按照格式Datetime模式。这适用于时间戳的类型。多行
(默认假
):解析一个记录,这可能跨越多个行,每个文件。编码
(默认情况下不设置):允许强行设置一个标准基本或扩展编码的JSON文件。例如UTF-16BE UTF-32LE。如果没有指定的编码多行
被设置为真正的
,它是自动检测。lineSep
(默认覆盖所有r \
,\ r \ n
和\ n
):定义行分隔符应该用于解析。samplingRatio
1.0(默认):定义的输入使用JSON对象模式推断。dropFieldIfAllNull
(默认假
):是否要忽略所有空值的列或空数组/结构体在模式推理。语言环境
(默认是en - us
):集
区域作为语言标签在IETF BCP 47格式。例如,这是使用在解析日期和时间戳。allowNonNumericNumbers
(默认真正的
):JSON解析器可以识别组不是一个数字(南
)令牌作为合法的浮点数值:+正
+∞的别名+∞
和∞
。负
负无穷大),别名∞
。南
等其他not-a-numbers,除零的结果。