【发布时间】:2017-11-01 06:03:59
【问题描述】:
我有一个像这样的 spark 数据框。
id cd1 version1 dt1 cd2 version2 dt2 cd3 version3 dt3
1 100 1 20100101 101 1 20100101 102 20100301
1 101 1 20100102 102 20100201 100 1 20100302
2 201 1 20100103 100 1 20100301 100 1 20100303
2 202 2 20100104 100 1 20100105
我需要将所有代码转置为具有以下条件的单个列
- 如果对应的版本号为1,则在第一位后加小数点
- 每个患者都应该有不同的代码
对于上面的例子,输出应该是这样的。
id code dt
1 1.00 20100101
1 1.01 20100101
1 102 20100301
1 1.01 20100102
1 102 20100201
1 10.0 20100302
2 2.01 20100103
2 1.00 20100301
2 1.00 20100303
2 202 20100104
2 10.0 20100105
我正在使用 Pyspark 来执行此操作。在上面的示例中,我只显示了 3 个代码及其对应的版本列,但我有 30 个这样的列。此外,该数据大约有 2500 万行。
任何关于如何实现这一点的想法都会非常有帮助。
【问题讨论】:
标签: python apache-spark pyspark apache-spark-sql spark-dataframe