2017-05-03 88 views

回答

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

您显示的语法是针对SQL Server的。在Spark SQL中,可以使用row_number()向结果集中添加一列。例如:

SELECT ROW_NUMBER() OVER (ORDER BY col) as table_id, t1.* 
FROM table_1 t1; 
相关问题