gpt4 book ai didi

java - 将索引列添加到现有 Spark 的 DataFrame

转载 作者:搜寻专家 更新时间:2023-11-01 03:18:35 25 4
gpt4 key购买 nike

我使用 Java 使用 Spark 1.5 进行操作。我需要将 ID/索引列附加到现有的 DataFrame,例如:

+---------+--------+
| surname| name|
+---------+--------+
| Green| Jake|
| Anderson| Thomas|
| Corleone| Michael|
| Marsh| Randy|
| Montana| Tony|
| Green| Julia|
|Brenneman| Eady|
| Durden| Tyler|
| Corleone| Vito|
| Madiro| Mat|
+---------+--------+

我希望每一行都附加索引,范围在介于 1 和表记录数量之间。索引顺序无关紧要,任何行都必须只包含唯一 ID/索引。它可以通过转换为RDD并附加索引行并转换为修改了StructType的DataFrame来完成,但是,如果我没理解错的话,这种操作会消耗大量资源进行转换等,并且必须有其他方法。结果必须是这样的:

+---------+--------+---+
| surname| name| id|
+---------+--------+---+
| Green| Jake| 3|
| Anderson| Thomas| 5|
| Corleone| Michael| 2|
| Marsh| Randy| 10|
| Montana| Tony| 7|
| Green| Julia| 1|
|Brenneman| Eady| 2|
| Durden| Tyler| 9|
| Corleone| Vito| 4|
| Madiro| Mat| 6|
+---------+--------+---+

谢谢。

最佳答案

我知道这个问题可能是很久以前的问题了,但你可以按如下方式做:

from pyspark.sql.window import Window  
w = Window.orderBy("myColumn")
withIndexDF = originalDF.withColumn("index", row_number().over(w))
  • myColumn:数据框中的任何特定列。
  • originalDF:没有索引列的原始DataFrame。

关于java - 将索引列添加到现有 Spark 的 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38875599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com