多列连接后的Pyspark放置列

时间:2019-02-09 16:49:48

标签: python join pyspark

我试图在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中?

1 个答案:

答案 0 :(得分:0)

直接将列名用作连接条件的一部分,这需要重命名一个DataFrame上的列(在此示例中,我将选择123-abc 234-bca 567-yuio)。之后,您也无需再丢弃任何内容:

df1