【问题标题】:Pyspark drop columns after multicolumn join多列连接后 Pyspark 删除列
【发布时间】:2019-07-03 15:19:42
【问题描述】:

我正在尝试在 pyspark 中对两列进行左连接,其中只有一列名称相同:

如何删除连接数据框 df2.datedf2.accountnr 的两列?

dfAll = (
    df1
    .join(df2, 
        [df1.order_date == df2.date, df1.accountnr== df2.accountnr], 
        how = 'left')
)

添加 .drop(df2.date, df2.accountnr)(错误:col 应该是一个字符串)或 .drop('date', 'accountnr')(错误:列名不明确)很遗憾不起作用。

我能想到的唯一解决方案是首先将df2.accountnr 单独重命名为df2.accountnr2,然后使用.drop('date', 'accountnr2')

有没有更好的解决方案直接删除pyspark中的连接列?

【问题讨论】:

    标签: python join pyspark


    【解决方案1】:

    将列名直接用作连接条件的一部分,这需要重命名其中一个 DataFrame 上的列(在此示例中我将选择 df1)。之后您也不再需要丢弃任何东西:

    dfAll = (
        df1
        .withColumnRenamed('order_date', 'date')
        .join(df2, 
            ['date', 'accountnr'], 
            how = 'left')
    )
    

    【讨论】:

      猜你喜欢
      • 2017-09-24
      • 2018-06-26
      • 1970-01-01
      • 2021-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      相关资源
      最近更新 更多