sql с использованием разделов в запросе SQL sql - PullRequest
0 голосов
/ 02 сентября 2018

У меня SQL-запрос как таковой:

WITH cte AS
(
   SELECT *,
         ROW_NUMBER() OVER (PARTITION BY [date] ORDER BY TradedVolumSum DESC) AS rn
   FROM tempTrades
)
SELECT *
FROM cte
WHERE rn = 1

и я хочу использовать его в spark sql для запроса моего фрейма данных.

мой фрейм данных выглядит так: enter image description here

и я хочу иметь только максимум tradedVolumSum для каждого дня с описанием SecurityDescription. поэтому я хочу увидеть что-то вроде:

enter image description here

как бы я смоделировал такое же поведение в spark sql в python?

Спасибо!

1 Ответ

0 голосов
/ 02 сентября 2018

Ниже приведен код вашей проблемы, предполагающий, что имя вашего фрейма данных - tempTrades:

import pyspark.sql.functions as F
from pyspark.sql import Window

win_temp = Window.partitionBy(F.col("[date]")).orderBy(F.col("TradedVolumSum").desc())
tempTrades.withColumn(
    "rn",
    F.row_number().over(win_temp)
).filter(
    F.col("rn") == 1
)
...