在带数据帧的左连接后删除多个重复的列?

Drop multiple duplicated columns after left join w/ dataframes?

我正在使用 Pyspark 和 Spark 编写脚本 SQL。但是,在我的 base_dfinc_df 日期框架上 运行 一个 LEFT-JOIN 之后,我的所有专栏都被复制了。

我已经弄清楚为什么列重复了,但我现在在尝试 DROP 那些重复的列时收到 type errors

我也尝试过这个解决方案.... a.join(b, 'id')

下面是我的部分代码..


''' uc_df = (base_df

         .join(inc_df,

               (inc_df.src_sys_id == base_df.src_sys_id) & (inc_df.fleet_acct_nbr == base_df.fleet_acct_nbr),

               "left_outer")

         .filter(inc_df.src_sys_id.isNull())

         .drop(base_df.region_cd,

               base_df.fleet_acct_exctv_cd,

               base_df.fleet_acct_nbr,

               base_df.fleet_acct_exctv_nm,

               base_df.fleet_acct_exctv_first_nm,

               base_df.fleet_acct_exctv_last_nm,

               base_df.fleet_acct_exctv_mid_nm,

               base_df.fleet_acct_nm,

               base_df.meas_cnt,

               base_df.dw_anom_flg,

               base_df.dw_mod_ts,

               base_df.src_sys_iud_cd,

               base_df.dw_job_id)

       

        )

我收到以下错误:

Type Error: Each column in the param list should be a string

你不需要放下任何东西。相反,您可以使用 select 并将数据帧别名如下 -

df1.alias("a").join(df2.alias("b"), df1["key"] == df2["key"], 'inner').select("a.*").show()

替换对应你的数值