【发布时间】:2020-10-16 12:27:38
【问题描述】:
我有 2 列(字符串、数组
||身份证||参数 ||
|| id1 || [{type=A, cnt=4}, {type=B, cnt=2}]
|| id2 || [{type=A, cnt=3}, {type=C, cnt=1}, {type=D, cnt=0}]
|| id3 || [{type=E, cnt=1}]
我需要将其转换为具有分隔的 int 列的表,其中列名是“类型”,值等于 cnt:
||编号 ||一个 ||乙 || C || D || E ||
|| id1 || 4 || 2 ||空||空||空||
|| id2 || 3 ||空|| 1 || 0 ||空||
|| id3 ||空||空||空||空|| 1 ||
转换表格的最佳和有效方法是什么? Spark SQL 和 PySpark 风格。谢谢。
【问题讨论】:
-
分解数组,提取值(新列中的每个值,如果存在 - 值,如果不存在 - 0)然后按 id 分组并使用聚合求和函数。
-
请接受答案,而不是让它们打开。
标签: sql apache-spark pyspark