如何在 Spark SQL 中生成 ID 号?在Python接口中,Spark有monotically_increasing_id()函数。但我不知道如何在SQL语法中实现这个功能。我想通过一些字符串操作从旧表创建一个表,并为新表建立一个 id 列。
这可以达到我希望的效果:
ROW_NUMBER() over (ORDER BY myColumn)
我想说最好使用 Spark-SQL 语法进行自动增量:
语法如下: 生成{总是|默认 } 作为身份 [ ( [ 从开始开始 ] [ 按步骤递增 ] ) ]
起始值和增量值都有默认值,因此您只需要这个:
示例:
创建表 gen1 ( id long 始终作为身份生成 , 字符串 )
例如,这适用于 Databricks 中的 Delta 表。它需要运行时版本 10.4 或更高版本。
来源:
[1] https://community.databricks.com/t5/data-engineering/is-delta-table-with-auto-increment-column-as-unique-identifier/td-p/17768
[2] 插入时增量表中的id自动递增
这应该使用spark.sql ID bigint 始终生成为 IDENTITY(从 1 开始递增 1),