当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pyspark from_json用法及代码示例


本文简要介绍 pyspark.sql.functions.from_json 的用法。

用法:

pyspark.sql.functions.from_json(col, schema, options=None)

将包含 JSON 字符串的列解析为以 StringType 作为键类型的 MapType、具有指定架构的 StructTypeArrayType。在不可解析字符串的情况下返回 null

2.1.0 版中的新函数。

参数

col Column 或 str

json格式的字符串列

schemaDataType 或 str

解析 json 列时使用的 StructType 或 ArrayType 或 StructType。

在 2.3 版中更改:DDL 格式的字符串也支持schema.

options字典,可选

控制解析的选项。接受与 json 数据源相同的选项。请参阅您使用的版本中的Data Source Option

例子

>>> from pyspark.sql.types import *
>>> data = [(1, '''{"a": 1}''')]
>>> schema = StructType([StructField("a", IntegerType())])
>>> df = spark.createDataFrame(data, ("key", "value"))
>>> df.select(from_json(df.value, schema).alias("json")).collect()
[Row(json=Row(a=1))]
>>> df.select(from_json(df.value, "a INT").alias("json")).collect()
[Row(json=Row(a=1))]
>>> df.select(from_json(df.value, "MAP<STRING,INT>").alias("json")).collect()
[Row(json={'a': 1})]
>>> data = [(1, '''[{"a": 1}]''')]
>>> schema = ArrayType(StructType([StructField("a", IntegerType())]))
>>> df = spark.createDataFrame(data, ("key", "value"))
>>> df.select(from_json(df.value, schema).alias("json")).collect()
[Row(json=[Row(a=1)])]
>>> schema = schema_of_json(lit('''{"a": 0}'''))
>>> df.select(from_json(df.value, schema).alias("json")).collect()
[Row(json=Row(a=None))]
>>> data = [(1, '''[1, 2, 3]''')]
>>> schema = ArrayType(IntegerType())
>>> df = spark.createDataFrame(data, ("key", "value"))
>>> df.select(from_json(df.value, schema).alias("json")).collect()
[Row(json=[1, 2, 3])]

相关用法


注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.sql.functions.from_json。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。