Spark SQL: 将 List 中的 Map 合并为一个 Map - 使用 map_concat 函数
在 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。
原文地址: https://www.cveoy.top/t/topic/p8hS 著作权归作者所有。请勿转载和采集!