在 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 数组的方法。希望这可以帮助到您。