Apache Spark 是一个快速、通用的大数据处理引擎,用于处理大规模数据集。Spark 提供了丰富的数据处理功能,包括 SQL 查询、流处理、机器学习和图处理等。在 Spark 中,可以从列中读取 JSON 数组,这通常涉及到使用 Spark SQL 或 DataFrame API 来处理 JSON 数据。
从列中读取 JSON 数组可以分为两种主要类型:
假设我们有一个 DataFrame,其中一列包含 JSON 数组:
from pyspark.sql import SparkSession
from pyspark.sql.functions import from_json, col
from pyspark.sql.types import ArrayType, StructType, StructField, StringType
# 创建 SparkSession
spark = SparkSession.builder.appName("Read JSON Array").getOrCreate()
# 示例数据
data = [
(1, '[{"name": "Alice", "age": 30}, {"name": "Bob", "age": 25}]'),
(2, '[{"name": "Charlie", "age": 35}]')
]
# 定义 schema
schema = StructType([
StructField("id", IntegerType(), True),
StructField("json_array", StringType(), True)
])
# 创建 DataFrame
df = spark.createDataFrame(data, schema)
# 解析 JSON 数组
json_schema = ArrayType(StructType([
StructField("name", StringType(), True),
StructField("age", IntegerType(), True)
]))
df_parsed = df.withColumn("parsed_json", from_json(col("json_array"), json_schema))
# 展开 JSON 数组
df_expanded = df_parsed.select("id", "parsed_json.*")
df_expanded.show()
通过以上方法,可以有效地从列中读取和处理 JSON 数组数据。
领取专属 10元无门槛券
手把手带您无忧上云