【发布时间】:2019-08-28 10:59:11
【问题描述】:
对此的scala spark实现感兴趣 split-column-of-list-into-multiple-columns-in-the-same-pyspark-dataframe
鉴于此数据框:
| X | Y|
+--------------------+-------------+
| rent|[1,2,3......]|
| is_rent_changed|[4,5,6......]|
| phone|[7,8,9......]|
我想要一个具有爆炸值并映射到我提供的列名称的新数据框:
colNames = ['cat','dog','mouse'....]
| Column|cat |dog |mouse |.......|
+--------------------+---|---|--------|-------|
| rent|1 |2 |3 |.......|
| is_rent_changed|4 |5 |6 |.......|
| phone|7 |8 |9 |.......|
试过了:
val out = df.select(col("X"),explode($"Y"))
但它的格式错误,我不知道如何映射到我的 colNames 列表:
X | Y |
---------------|---|
rent |1 |
rent |2 |
rent |3 |
. |. |
. |. |
is_rent_changed|4 |
is_rent_changed|5 |
在上面的链接中,python 的解决方案是使用列表推导:
univar_df10.select([univar_df10.Column] + [univar_df10.Quantile[i] for i in range(length)])
但它没有显示如何使用提供的列名列表,因为列名只是列的索引。
【问题讨论】:
-
你能举个例子吗?我似乎不清楚问题中的解释。
-
@VihitShah 更新
标签: scala dataframe apache-spark apache-spark-sql