我有两个数据框
- a列:['q1','q2','q3','a1','a2']
- b列:['q1','q2','q3','b','b2']
a可能不包含b中的某些['q1','q2','q3'],b也可能不包含a中的某些['q1','q2','q3']。
合并是指,如果a与b具有相同的['q1','q2','q3'],则合并各行,然后合并左行。 full outer join
不会这样做。
我的伪代码就像:
c = a.join(b,on= ['q1','q2','q3'],how='inner')
c = c.union(a.filter( ~a.withColumn('xxx',F.concat_ws('|','q1','q3') ).isin(c.select(F.concat_ws('|','q3')) )
c = c.union(b.filter( ~b.withColumn('xxx','q3')) )
但这是非常无效的。
还有什么更好的方法吗?