在 Spark 中解析 JSON 数组的方法是使用
from_json
函数。
from_json
函数将 JSON 字符串解析为结构化数据,返回一个
DataFrame
对象。
假设我们有一个 JSON 数据集,其中包含一个名为
items
的数组,每个元素都包含
name
和
price
两个属性。JSON 数据如下:
那么,我们可以使用以下代码将该 JSON 数据解析为 Spark
DataFrame
:
from pyspark.sql.functions import from_json, col
from pyspark.sql.types import StructType, StructField, StringType, DoubleType
json_schema = StructType([
StructField("items",
StructType([
StructField("name", StringType()),
StructField("price", DoubleType())
df = spark.read.json("path/to/json_file.json")
df = df.select(from_json(col("value").cast("string"), json_schema).alias("parsed_json")).select("parsed_json.items.*")
df.show()
在这个例子中,我们首先定义了一个 JSON Schema,该模式定义了要解析的 JSON 数据的结构。我们使用 StructType
和 StructField
来指定结构的层次和属性的类型。
然后,我们使用 spark.read.json
方法读取 JSON 数据,并使用 from_json
函数将 value
列中的 JSON 字符串解析为 parsed_json
列。我们使用 cast("string")
将 value
列转换为字符串类型,因为 from_json
函数需要一个字符串参数。
最后,我们使用 select
函数选择 parsed_json.items.*
,这将展开 items
数组并选择其属性,即 name
和 price
。
这就是在 Spark 中解析 JSON 数组的方法。希望这可以帮助到您。