如何使用 Spark 创建自动递增 id 列(纯 SQL 无 Python)

问题描述 投票:0回答:3

如何在 Spark SQL 中生成 ID 号?在Python接口中,Spark有monotically_increasing_id()函数。但我不知道如何在SQL语法中实现这个功能。我想通过一些字符串操作从旧表创建一个表,并为新表建立一个 id 列。

sql apache-spark
3个回答
2
投票

这可以达到我希望的效果:

ROW_NUMBER() over (ORDER BY myColumn)


0
投票

我想说最好使用 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自动递增


0
投票

这应该使用spark.sql ID bigint 始终生成为 IDENTITY(从 1 开始递增 1),

© www.soinside.com 2019 - 2024. All rights reserved.