在带数据帧的左连接后删除多个重复的列?
Drop multiple duplicated columns after left join w/ dataframes?
我正在使用 Pyspark 和 Spark 编写脚本 SQL。但是,在我的 base_df
和 inc_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()
替换对应你的数值
我正在使用 Pyspark 和 Spark 编写脚本 SQL。但是,在我的 base_df
和 inc_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()
替换对应你的数值