gpt4 book ai didi

Java & Spark : add unique incremental id to dataset

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:08:17 25 4
gpt4 key购买 nike

使用 Spark 和 Java,我试图向现有的具有 n 列的数据集 [行] 添加一个整数标识列。

我使用 zipWithUniqueId()zipWithIndex 成功添加了一个 id,甚至使用了 monotonically_increasing_id()。但没有一个能令人满意。

示例:我有一个包含 195 行的数据集。当我使用这三种方法中的一种时,我得到一些像 158415648712036 这样的 ID。另外,这些 ID 不是连续的。

我需要/想要的非常简单:一个 Integer id 列,其值从 1 到 dataset.count() foreach 行,其中 id = 1 后跟 id = 2,等等。

我如何在 Java/Spark 中做到这一点?

最佳答案

你可以尝试使用row_number功能:

在Java中:

import org.apache.spark.sql.functions;
import org.apache.spark.sql.expressions.Window;

df.withColumn("id", functions.row_number().over(Window.orderBy("a column")));

或者在 Scala 中:

import org.apache.spark.sql.expressions.Window;
df.withColumn("id",row_number().over(Window.orderBy("a column")))

关于Java & Spark : add unique incremental id to dataset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45480208/

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