在pyspark中分解Maptype列

哈迪克·古普塔

我有一个这样的数据框

data = [(("ID1", {'A': 1, 'B': 2}))]
df = spark.createDataFrame(data, ["ID", "Coll"])
df.show()

+---+----------------+
| ID|            Coll|
+---+----------------+
|ID1|[A -> 1, B -> 2]|
+---+----------------+

df.printSchema()
root
 |-- ID: string (nullable = true)
 |-- Coll: map (nullable = true)
 |    |-- key: string
 |    |-- value: long (valueContainsNull = true)

我想爆炸“ Coll”列,这样

+---+-----------+
| ID| Key| Value|
+---+-----------+
|ID1|   A|     1|
|ID1|   B|     2| 
+---+-----------+

我正在尝试在pyspark中做到这一点

如果我只使用一列,我会成功,但是我也想要ID列

df.select(explode("Coll").alias("x", "y")).show()

+---+---+
|  x|  y|
+---+---+
|  A|  1|
|  B|  2|
+---+---+
ido堂

只需将ID列添加到中select,它就可以正常工作:

df.select("id", explode("Coll").alias("x", "y"))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章