【问题标题】:Will `ROW_NUMBER() OVER (ORDER BY RAND())` in spark provide me a random row number for each row?spark 中的 ROW_NUMBER() OVER (ORDER BY RAND()) 会为我提供每行的随机行号吗?
【发布时间】:2023-01-16 22:08:19
【问题描述】:

我需要从 spark tempView 中获取随机样本,下面是否会为 spark sql temp 视图中的每一行提供一个随机行号?

WITH t1 AS (
  SELECT *, ROW_NUMBER() OVER (ORDER BY RAND()) as rn
  FROM my_temp_view
)

然后如果我想要一个 1000 行的随机样本,我会

SELECT * FROM t1 ORDER BY rn LIMIT 1000

谢谢!

【问题讨论】:

    标签: apache-spark apache-spark-sql


    【解决方案1】:

    你的逻辑看起来是正确的,但如果你想要的只是例如随机抽取 1000 条记录,我什至不明白使用 ROW_NUMBER 的意义。相反,直接使用限制查询:

    SELECT *
    FROM my_temp_view
    ORDER BY RAND()
    LIMIT 1000;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-17
      • 2014-05-08
      • 1970-01-01
      • 1970-01-01
      • 2012-04-18
      • 2012-04-13
      • 1970-01-01
      相关资源
      最近更新 更多