【发布时间】:2020-01-17 05:20:47
【问题描述】:
我有一个 pyspark 数据框,其中包含两个 id 列 id 和 id2。每个id 都精确重复n 次。所有id 都具有相同的一组id2。我正在尝试根据id2 将每个唯一id 产生的矩阵“展平”为一行。
这是一个示例来解释我想要实现的目标,我的数据框如下所示:
+----+-----+--------+--------+
| id | id2 | value1 | value2 |
+----+-----+--------+--------+
| 1 | 1 | 54 | 2 |
+----+-----+--------+--------+
| 1 | 2 | 0 | 6 |
+----+-----+--------+--------+
| 1 | 3 | 578 | 14 |
+----+-----+--------+--------+
| 2 | 1 | 10 | 1 |
+----+-----+--------+--------+
| 2 | 2 | 6 | 32 |
+----+-----+--------+--------+
| 2 | 3 | 0 | 0 |
+----+-----+--------+--------+
| 3 | 1 | 12 | 2 |
+----+-----+--------+--------+
| 3 | 2 | 20 | 5 |
+----+-----+--------+--------+
| 3 | 3 | 63 | 22 |
+----+-----+--------+--------+
所需的输出如下表:
+----+----------+----------+----------+----------+----------+----------+
| id | value1_1 | value1_2 | value1_3 | value2_1 | value2_2 | value2_3 |
+----+----------+----------+----------+----------+----------+----------+
| 1 | 54 | 0 | 578 | 2 | 6 | 14 |
+----+----------+----------+----------+----------+----------+----------+
| 2 | 10 | 6 | 0 | 1 | 32 | 0 |
+----+----------+----------+----------+----------+----------+----------+
| 3 | 12 | 20 | 63 | 2 | 5 | 22 |
+----+----------+----------+----------+----------+----------+----------+
所以,基本上,对于每个唯一的 id 和每一列 col,我将有 n 新列 col_1,...对于每个 n id2 值。
任何帮助将不胜感激!
【问题讨论】:
-
它没有回答我的问题
标签: pyspark apache-spark-sql pyspark-dataframes