【发布时间】:2016-08-14 00:29:23
【问题描述】:
我有一个像这样的 spark 数据框:
+------+--------+--------------+--------------------+
| dbn| boro|total_students| sBus|
+------+--------+--------------+--------------------+
|17K548|Brooklyn| 399|[B41, B43, B44-SB...|
|09X543| Bronx| 378|[Bx13, Bx15, Bx17...|
|09X327| Bronx| 543|[Bx1, Bx11, Bx13,...|
+------+--------+--------------+--------------------+
如何展平它以便为 sBus 中的每个元素复制每一行,并且 sBus 将是一个普通的字符串列?
所以结果会是这样的:
+------+--------+--------------+--------------------+
| dbn| boro|total_students| sBus|
+------+--------+--------------+--------------------+
|17K548|Brooklyn| 399| B41 |
|17K548|Brooklyn| 399| B43 |
|17K548|Brooklyn| 399| B44-SB |
+------+--------+--------------+--------------------+
等等……
【问题讨论】:
-
你能提供预期的输出吗?您是否期望得到
sBus和sSw之间的笛卡尔积? -
谢谢!添加了预期的结果。为简单起见,删除了 sSw 列
-
好吧,你可以使用
explode(例如stackoverflow.com/q/36484385/1560062),但如果你有多个列,那就没那么简单了。
标签: python apache-spark pyspark