Pyspark:如何在不同条件的数据框中创建列

Posted

技术标签:

【中文标题】Pyspark:如何在不同条件的数据框中创建列【英文标题】:Pyspark : How can create the columns in dataframe with differents condition 【发布时间】:2022-01-22 05:19:52 【问题描述】:

我想在 Pyspark 中创建具有两个不同条件和一个数据框的列:df = dataframe[col1, col2] where

col1 = 根据 df_A::MTAV = df_B::CODE 加入 df_A 和 df_B

col2 = 根据 df_A::MTAP = df_B::CODE 将 df_A 与 df_B 连接

如何在数据框中创建两列?

【问题讨论】:

【参考方案1】:

您在这里没有提到 col1 和 col2 所需的逻辑。您可以实现如下逻辑,在两个不同的数据帧中实现连接,然后将两个新数据帧与新列连接在一起。

df_mtav = (df_a
           .join(df_b, df_a.mtav == df_b.code)
           .withColumn("mtav_col", <column logic here>)
          )

df_mtap = (df_a
           .join(df_b, df_a.mtap == df_b.code)
           .withColumn("mtap_col", <column logic here>)
          )

df_final = (df_mtav
            .join(df_mtap, df_mtap.code == df_mtav.code)
           )

【讨论】:

以上是关于Pyspark:如何在不同条件的数据框中创建列的主要内容,如果未能解决你的问题,请参考以下文章

如何使用实际数据帧中两列中的值索引另一个数据帧,从而在实际数据框中创建列

在数据框中创建列,指示另一列中的重复值

如何在 pyspark 中创建新列,其中条件取决于列的后续值?

在数据框中创建列,按因子级别从另一列中采样

根据现有的列名和列值在 python 数据框中创建列

如何在 pyspark 中创建数据框的副本?