我有一个这种形式的数据框
+--------------------------------------+-----------------------------+
|hashMap |name |
+--------------------------------------+-----------------------------+
|[{"A":"0","B":"0","C":"0"}, {"X":"0"}]|[M, D] |
+--------------------------------------+-----------------------------+
我想把它分成这个
+--------------------------------------+-----------------------------+
|hashMap |name |
+--------------------------------------+-----------------------------+
|"A":"0","B":"0","C":"0" | M |
|"X":"0" | D |
+--------------------------------------+-----------------------------+
我知道爆炸拆分,但我不知道它是否适用于两列。此外,有时两列中可能只有一个值
例如
+-----------+-----------+
|hashMap |name |
+-----------+-----------+
|[{"A":"0"} |[M] |
+-----------+-----------+
如何使爆炸拆分通用以在 Scala 中处理此问题?
您可以使用以下命令压缩数组并分解它们inline
:
val df2 = df.selectExpr("inline(arrays_zip(hashMap, name))")
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句