【问题标题】:Dynamically create pyspark dataframes according to a condition根据条件动态创建 pyspark 数据帧
【发布时间】:2022-11-29 00:37:00
【问题描述】:

我有一个 pyspark 数据框store_df:-

store ID Div
637 4000000970 Pac
637 4000000435 Pac
637 4000055542 Pac
637 4000042206 Pac
638 2200015935 Pac
638 2200000483 Pac
638 4000014114 Pac
640 4000000162 Pac
640 2200000067 Pac
642 2200000067 Mac
642 4000044148 Mac
642 4000014114 Mac

我想基于Div从数据帧final_list动态删除store_df中的每个store(存在于store_df中)。

final_listpyspark df :-

Div ID Rank Category
Pac 4000000970 1 A
Pac 4000000432 2 A
Pac 4000000405 3 A
Pac 4000042431 4 A
Pac 2200028596 5 B
Pac 4000000032 6 A
Pac 2200028594 7 B
Pac 4000014114 8 B
Pac 2230001789 9 D
Pac 2200001789 10 C
Pac 2200001787 11 D
Pac 2200001786 12 C
Mac 2200001789 1 C
Mac 2200001787 2 D
Mac 2200001786 3 C

例如:对于商店 637,upd_final_list 应如下所示:-

Div ID Rank Category
Pac 4000000432 2 A
Pac 4000000405 3 A
Pac 4000042431 4 A
Pac 2200028596 5 B
Pac 4000000032 6 A
Pac 2200028594 7 B
Pac 4000014114 8 B
Pac 2230001789 9 D
Pac 2200001789 10 C
Pac 2200001787 11 D
Pac 2200001786 12 C

同样,此列表将根据其他商店的 ID 进行定制。 我该怎么做呢?

【问题讨论】:

    标签: python pyspark azure-databricks


    【解决方案1】:

    您可以只使用 where 来过滤: db.select("*").where(f.col("Div") == "Pac")

    这相当于:

    SELECT * FROM DB
       WHERE DB.Div == "Pac"
    

    【讨论】:

    • 我们真的不需要为每个商店有条件地消除ID。请重新阅读问题和预期输出
    猜你喜欢
    • 2018-08-24
    • 2021-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多