Я работаю над SCDTYPE2 в Spark Scala, поэтому мой код будет каждый день создавать новый фрейм данных, и мне нужно знать, как проставлять новые уникальные идентификаторы каждый раз, когда я создаю свой фрейм данных каждый день
У меня естьпопробовал monotonically_increasing_id()
функцию для создания уникального идентификатора.но генерирует уникальный идентификатор в каждом фрейме данных.но он не уникален для каждого прогона. Он повторяет один и тот же уникальный идентификатор снова для каждого прогона.
Также я попытался создать уникальный идентификатор, используя столбец метки времени в моем фрейме данных вместе с monotonically_increasing_id
, но он выдает выходные данные вдвойной тип данных, и я преобразовал обратно в целое число / строку, но его округление идентификатора и создание дубликатов идентификаторов.
val DF2 =DF1.withColumn("key1",((date_format(col("date_column"), "ddmmyy")*24*60+ date_format(col("date_column"), "HHmmss")*60 + monotonically_increasing_id())*(-1)).cast(IntegerType)).withColumn("key2",$"key1".cast(StringType)).withColumn("date1",(date_format(col("date_column"), "ddmmyy")*24*60)).withColumn("date2",(date_format(col("date_column"), "HHmmss")*60 )).withColumn("id",monotonically_increasing_id()*(-1)).select($"date_column",$"date1",$"date2",$"id",$"key1",$"key2")
Я ожидаю, что уникальный идентификатор должен генерироваться независимо от генерации фрейма данных.Если бы кто-то мог указать мне правильное направление, это было бы полезно.