如何通过spark-sql将代理键(自动增加键,如1,2,3,4 ...)添加到表中?
我已经这样做了。
SELECT IDENTITY(1,1) AS table_id, table_1.*
FROM table_1
但它没有用。
答案 0 :(得分:2)
Spark有一个名为monotonically_increasing_id
的方法。这比row_number
更直接,更适合您的目的。您可以像这样使用它:
SELECT MONOTONICALLY_INCREASING_ID() AS table_id, t1.*
FROM table_1 t1
ORDER BY <columns>
此外,不要忘记添加ORDER BY
以使您的代理密钥可重现。
答案 1 :(得分:1)
您显示的语法适用于SQL Server。在Spark SQL中,您可以使用row_number()
向结果集添加列。类似的东西:
SELECT ROW_NUMBER() OVER (ORDER BY col) as table_id, t1.*
FROM table_1 t1;