Join pyspark中动态生成连接条件

Join pyspark中动态生成连接条件,join,dynamic,pyspark,Join,Dynamic,Pyspark,是否有人可以建议一种方法,将JoinColumns列表和条件传递给pyspark中的联接 e、 g.我需要从列表中动态获取要联接的列,并且还希望传递联接的另一个条件。在scala中完成的类似操作如下所述: 我正在pyspark中寻找类似的解决方案 我知道我可以使用join。 a、 join(b,listofjoincolumns,how=“inner”) 但我也想通过一个连接条件: 我想把它叫做 a、 join(b,listofjoincolumns和连接条件,how=“inner”) 是否有人

是否有人可以建议一种方法,将JoinColumns列表和条件传递给pyspark中的联接

e、 g.我需要从列表中动态获取要联接的列,并且还希望传递联接的另一个条件。在scala中完成的类似操作如下所述:

我正在pyspark中寻找类似的解决方案

我知道我可以使用join。 a、 join(b,listofjoincolumns,how=“inner”) 但我也想通过一个连接条件:

我想把它叫做 a、 join(b,listofjoincolumns和连接条件,how=“inner”)


是否有人可以在pyspark中建议一种方法。

尝试将联接列列表转换为联接条件本身:

from functools import reduce
from operator import and_
df_a.join(df_b, reduce(and_,
                       [df_a[col] == df_b[col] for col in listofcols],
                       joinCond)
         )

尝试将联接列列表转换为联接条件本身:

from functools import reduce
from operator import and_
df_a.join(df_b, reduce(and_,
                       [df_a[col] == df_b[col] for col in listofcols],
                       joinCond)
         )

请提供更多关于您想要实现的目标的信息。显示数据帧
a
b
以及要加入的内容。df_a=[id1,id2,date1,date2],df_b=[id1,id2,date1,date2]。我想以一种方式连接df_a和df_b,我将有一个列列表作为listocols=[id1,id2]来连接,如果我没有连接条件,我可以简单地执行:df_a.join(df_b,listocols,how=“inner”)。但是我还需要传递一个连接条件,例如joinCond=df_a.date1a
b
以及要加入的内容。df_a=[id1,id2,date1,date2],df_b=[id1,id2,date1,date2]。我想以一种方式连接df_a和df_b,我将有一个列列表作为listocols=[id1,id2]来连接,如果我没有连接条件,我可以简单地执行:df_a.join(df_b,listocols,how=“inner”)。但是我还需要传递一个连接条件,例如joinCond=df_a.date1