【发布时间】:2019-01-31 03:07:49
【问题描述】:
我有一个 Pyspark 数据框如下:
+------------+-------------+--------------------+
|package_id | location | package_scan_code |
+------------+-------------+--------------------+
|123 | Denver |05 |
|123 | LosAngeles |03 |
|123 | Dallas |09 |
|123 | Vail |02 |
|456 | Jacksonville|05 |
|456 | Nashville |09 |
|456 | Memphis |03 |
"package_scan_code" 03 代表包裹的来源。
我想在这个数据帧中添加一列“origin”,这样对于每个包(由“package_id”标识),新添加的 origin 列中的值将与对应于“package_scan_code”03 的位置相同。
在上面的例子中,有两个唯一的包 123 和 456,它们的来源分别是 LosAngeles 和 Memphis(对应 package_scan_code 03)。
所以我希望我的输出如下:
+------------+-------------+--------------------+------------+
| package_id |location | package_scan_code |origin |
+------------+-------------+--------------------+------------+
|123 | Denver |05 | LosAngeles |
|123 | LosAngeles |03 | LosAngeles |
|123 | Dallas |09 | LosAngeles |
|123 | Vail |02 | LosAngeles |
|456 | Jacksonville|05 | Memphis |
|456 | Nashville |09 | Memphis |
|456 | Memphis |03 | Memphis |
如何在 Pyspark 中实现这一点?我尝试了.withColumn 方法,但我无法获得正确的条件。
【问题讨论】:
标签: python apache-spark pyspark apache-spark-sql pyspark-sql