Hive查询行号



我在Pyspark上工作,需要编写一个查询,该查询从Hive Table读取数据并返回包含所有列和行号的Pyspark DataFrame。

这是我尝试的:

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

此查询在Hive中工作正常,但是当我从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

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

设置订单

相关内容

  • 没有找到相关文章

最新更新