當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。