gpt4 book ai didi

apache-spark - 附加唯一 ID 的 Spark 数据集

转载 作者:行者123 更新时间:2023-12-04 16:06:31 24 4
gpt4 key购买 nike

我正在寻找是否有“已实现的替代方案”来附加 spark 数据集上的唯一 ID。

我的场景:我有一个增量作业,每天运行处理一批信息。在这项工作中,我创建了一个包含something 的维度表,并使用monotonically_increasing_id() 为每一行分配了唯一的 ID。第二天,我想向那个 something 表追加一些行,并想为这些行生成唯一的 ID。

例子:

第 1 天:

something_table    
uniqueID name
100001 A
100002 B

第 2 天:

something_table
uniqueId name
100001 A
100002 B
100003 C -- new data that must be created on day 2

第 1 天的代码:

case class BasicSomething(name: String)
case class SomethingTable(id: Long, name: String)

val ds: Dataset[BasicSomething] = spark.createDataset(Seq(BasicSomething("A"), BasicSomething("B")))

ds.withColumn("uniqueId", monotonically_increasing_id())
.as[SomethingTable]
.write.csv("something")

我不知道如何保持 monotonically_increasing_id() 的状态,以便在第二天它将知道来自 something_table 唯一 ID 的现有 ID。

最佳答案

您始终可以获得您创建的数据集last uniqueId。因此,您可以将 uniqueId 与 monotically_increasing_id() 一起使用并创建新的 uniqueIds

ds.withColumn("uniqueId", monotonically_increasing_id()+last uniqueId of previous dataframe)

关于apache-spark - 附加唯一 ID 的 Spark 数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48510073/

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