行数的配置单元查询

ecfsfe2w  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(447)

我正在处理pyspark,需要编写一个从配置单元表读取数据并返回一个包含所有列和行号的pysparkDataframe的查询。
这就是我所尝试的:

SELECT *, ROW_NUMBER() OVER () as rcd_num FROM schema_name.table_name

此查询在配置单元中工作正常,但当我从pyspark脚本运行它时,会引发以下错误:

Window function row_number() requires window to be ordered, please add ORDER BY clause. For example SELECT row_number()(value_expr) OVER (PARTITION BY window_partition ORDER BY window_ordering) from table;

请提出一些解决办法。
注意:我不希望按任何特定顺序对行进行排序,我只需要表中所有行的行号,而不需要任何排序或排序。
使用spark 2.1

iibxawm4

iibxawm41#

ROW_NUMBER() 可能需要订购才能使用 monotonicallyIncreasingId 函数,该函数为表中的所有行提供行号。

from pyspark.sql.functions import monotonicallyIncreasingId

df.withColumn("rcd_num ", monotonicallyIncreasingId())

SELECT *, ROW_NUMBER() OVER (Order by (select NULL)) as rcd_num FROM schema_name.table_name 你可以通过 select NULL

相关问题