0
コンテキスト:ログオン時に大きなテーブルがあります。私は指定された期間(例えば3600秒)内のログオンのローリングカウントを計算したいと思います。 SQL/HQLでsparklyrでのウィンドウ操作にspark-sqlの "range between"句を使用する方法
私はこれを指定します:私があるのかどうかを知りたい
df %>%
mutate(window_count = sql('COUNT(*) OVER(
PARTITION BY id ORDER BY logon_time
RANGE BETWEEN 3600 PRECEDING AND CURRENT ROW'))
:sparklyrでの回避策として
SELECT id, logon_time, COUNT(*) OVER(
PARTITION BY id ORDER BY logon_time
RANGE BETWEEN 3600 PRECEDING AND CURRENT ROW) as window_count
FROM df
として、我々はこれを書くことができますこれを達成するための既存のスパークリヤ/デュプリル方法。 dbplyrに「window_frame」機能を追加することに関連することは有望に見える This issue、しかし、私は「との間の範囲」を指定する方法を見つけることができない、以下の操作は、ウィンドウのみ「の間の行」を生成:
df %>%
group_by(id) %>%
window_frame(-3600, 0) %>%
window_order(logon_time) %>%
mutate(windowed_count = n())