如何将连续数字分配给行组以创建唯一键

时间:2016-07-07 15:07:36

标签: scala apache-spark spark-dataframe

我在Spark中有这种DataFrame

+---+--------+-----+
|  A|    date|value|
+---+--------+-----+
|  1|12/06/15|  0,0|
|  1|17/06/15|  0,0|
|  3|12/06/15|  0,0|
|  3|17/06/15|  0,0|
|  4|12/06/15|  0,0|
|  4|17/06/15|  0,0|
|  1|12/06/15|  0,0|
|  1|17/06/15|  0,0|
|  3|12/06/15| 65,4|
|  3|17/06/15| 40,7|
|  4|12/06/15| 73,1|
|  4|17/06/15| 33,3|
....
+---+--------+-----+

A值是周期性的:1 -> 3 -> 4 -> 1 -> 3 -> 4 -> ...

我需要做的是添加另一列T来为我的记录创建唯一键{T, A, date}

+---+---+--------+-----+
|  T|  A|    date|value|
+---+---+--------+-----+
|  1|  1|12/06/15|  0,0|
|  1|  1|17/06/15|  0,0|
|  1|  3|12/06/15|  0,0|
|  1|  3|17/06/15|  0,0|
|  1|  4|12/06/15|  0,0|
|  1|  4|17/06/15|  0,0|
|  2|  1|12/06/15|  0,0|
|  2|  1|17/06/15|  0,0|
|  2|  3|12/06/15| 65,4|
|  2|  3|17/06/15| 40,7|
|  2|  4|12/06/15| 73,1|
|  2|  4|17/06/15| 33,3|
........
+---+---+--------+-----+

我看到withColumn DataFrame方法允许向DF添加其他列,并且可以从当前行的其他元素中计算T值。我在这里面临的问题是,当且仅当原始DF中已存在具有相同T值的元素时,我想增加新{A, date}列的值。

在Spark中执行此操作的最佳方法是什么?

0 个答案:

没有答案