Spark向DataFrame添加新列,该列的值来自前一行。

12 浏览
0 Comments

Spark向DataFrame添加新列,该列的值来自前一行。

我想知道如何在Spark(Pyspark)中实现以下内容

初始Dataframe:

+--+---+
|id|num|
+--+---+
|4 |9.0|
+--+---+
|3 |7.0|
+--+---+
|2 |3.0|
+--+---+
|1 |5.0|
+--+---+

结果Dataframe:

+--+---+-------+
|id|num|new_Col|
+--+---+-------+
|4 |9.0|  7.0  |
+--+---+-------+
|3 |7.0|  3.0  |
+--+---+-------+
|2 |3.0|  5.0  |
+--+---+-------+

我通常使用以下方式“追加”新列到Dataframe:

df.withColumn("new_Col", df.num * 10)

但是我不知道如何实现新列的“行移动”,使得新列的值为前一行的字段值(如示例所示)。我在API文档中也找不到如何通过索引访问DF中的特定行的任何信息。

感激不尽,希望能得到帮助。

0