簡體   English   中英

在 pyspark DataFrame 中創建日期范圍

[英]Create a range of dates in a pyspark DataFrame

我有以下抽象DataFrame(我原來的DF有600億行+)

Id    Date          Val1   Val2
1     2021-02-01    10     2
1     2021-02-05    8      4
2     2021-02-03    2      0
1     2021-02-07    12     5
2     2021-02-05    1      3

我的預期輸出是:

Id    Date          Val1   Val2
1     2021-02-01    10     2
1     2021-02-02    10     2
1     2021-02-03    10     2
1     2021-02-04    10     2
1     2021-02-05    8      4
1     2021-02-06    8      4
1     2021-02-07    12     5
2     2021-02-03    2      0
2     2021-02-04    2      0
2     2021-02-05    1      3

基本上,我需要的是:如果Val1Val2在一段時間內發生變化,則這兩個日期之間的所有值都必須具有前一個日期的值。 (為了更清楚,請看 ID 2)。

我知道我可以通過多種方式做到這一點(窗口 function,udf,...)但我的疑問是,由於我的原始 DF 有超過 600 億行,進行此處理的最佳方法是什么?

我認為最好的方法(性能方面)是執行內部連接(可能使用廣播)。 如果你擔心記錄的數量,我建議你按批次運行它們(可以是記錄的數量,或者按日期,甚至是一個隨機數)。 一般的想法只是為了避免一次運行所有。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM