我正在尝试为scalaDataframe中的每一行设置唯一的id,因此可以将datarciks笔记本中的dataframe插入sqldb。
val df2 = df1.withColumn("unique_ID",monotonicallyIncreasingId)
这适用于第一次摄取到sqldb中。但是当我尝试接收新数据时,我得到了复制键错误“复制键值是..x”
如何克服为每次sql摄取生成唯一密钥的困难?谢谢。
我正在尝试为scalaDataframe中的每一行设置唯一的id,因此可以将datarciks笔记本中的dataframe插入sqldb。
val df2 = df1.withColumn("unique_ID",monotonicallyIncreasingId)
这适用于第一次摄取到sqldb中。但是当我尝试接收新数据时,我得到了复制键错误“复制键值是..x”
如何克服为每次sql摄取生成唯一密钥的困难?谢谢。
1条答案
按热度按时间cyej8jka1#
而不是手工添加标识符(我认为这是失败的,因为
monotonicallyIncreasingId
总是从0开始,即使它已经存储在您试图保存到的数据库中)您可能可以向正在保存的数据库的架构中添加一个自动递增的标识符列。每个rdbms都有自己的方法来实现这一点,本页将展示如何在一系列sql数据库实现上实现这一点。例如,在mysql中,您可以添加AUTO_INCREMENT
列的限定符:在保存Dataframe时,您不需要指定自动递增标识符(即,在上面的示例中,您的Dataframe应该只包含
LastName
,FirstName
和年龄~