如何在表中添加代理自动增加键?

时间:2017-05-03 11:56:59

标签: sql apache-spark apache-spark-sql

如何通过spark-sql将代理键(自动增加键,如1,2,3,4 ...)添加到表中?

我已经这样做了。

SELECT IDENTITY(1,1) AS table_id, table_1.*
FROM table_1

但它没有用。

2 个答案:

答案 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;