在 Spark SQL 中,可以使用map_concat函数将列表中的多个Map合并为一个Map。以下是一个示例代码:

from pyspark.sql import SparkSession
from pyspark.sql.functions import expr

# 创建SparkSession
spark = SparkSession.builder.getOrCreate()

# 创建示例数据
data = [
    {"id": 1, "map_list": [{"a": 1, "b": 2}, {"c": 3, "d": 4}]},
    {"id": 2, "map_list": [{"e": 5, "f": 6}, {"g": 7, "h": 8}]},
]

# 创建DataFrame
df = spark.createDataFrame(data)

# 使用map_concat函数将map_list合并为一个map
merged_df = df.selectExpr("id", "map_concat(map_list) as merged_map")

# 显示结果
merged_df.show(truncate=False)

输出结果为:

+---+-------------------------------+
|id |merged_map                     |
+---+-------------------------------+
|1  |[a -> 1, b -> 2, c -> 3, d -> 4]|
|2  |[e -> 5, f -> 6, g -> 7, h -> 8]|
+---+-------------------------------+

map_concat函数将map_list中的所有Map合并为一个Map,并返回一个新的Map列merged_map

Spark SQL: 将 List 中的 Map 合并为一个 Map - 使用 map_concat 函数

原文地址: https://www.cveoy.top/t/topic/p8hS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录