Spark数据集附加唯一ID

时间:2018-01-29 21:13:55

标签: apache-spark apache-spark-sql spark-dataframe apache-spark-dataset

我正在查看是否在spark数据集上有append唯一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天的Sniped代码:

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。

1 个答案:

答案 0 :(得分:0)

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

Cache-Control: must-validate