Scala Spark 2.0-pyspark2数据帧--》;唯一id生成
将spark 2.0与pyspark一起使用 源表位于配置单元中 目标表在配置单元中 在目标表中,您希望创建唯一的行ID,该行ID将是唯一的,并且不应重复 示例代码Scala Spark 2.0-pyspark2数据帧--》;唯一id生成,scala,apache-spark,pyspark,unique,pyspark-sql,Scala,Apache Spark,Pyspark,Unique,Pyspark Sql,将spark 2.0与pyspark一起使用 源表位于配置单元中 目标表在配置单元中 在目标表中,您希望创建唯一的行ID,该行ID将是唯一的,并且不应重复 示例代码 SourceDf=Spark.sql ("""select * from table""") SouceDf.registerastemptable (souceDf) Spark.sql (insert into targettable select Rowid, a.col1, a.col2....from sourceDf
SourceDf=Spark.sql ("""select * from table""")
SouceDf.registerastemptable (souceDf)
Spark.sql (insert into targettable select
Rowid, a.col1, a.col2....from sourceDf
)
如何做到这一点?您可以从
使用
单调递增ID
函数或行数
与未分区窗口(更昂贵)单调重复?可能在随后的运行中,如何单调地知道targt表中已经存在什么。首先,使用单调地增加id
而不是单调地增加id
(不推荐),如果您在开始时从表中获得最高值,可以添加(+1)对于你的单调增长,这是稳定的吗?它从spark 1.6开始就存在了(截至此评论,我们是2.3.1)
from pyspark.sql.functions import monotonically_increasing_id
with_id=SourceDF.withColumn('_id',monotonically_increasing_id())