Pyspark-将不等式条件动态传递给数据框联接

问题描述

我正在从另一个问题中使用此代码:我的问题是除ON子句外,如何在此处传递不等式条件。

例如,我的加入条件为0 如果我的条件只有("ID == ID") & ((DATE1 < DATE2) & (DATE3 > DATE4)),我可以使用ID == ID来做到这一点,但我也想在下面的代码中传递不平等条件:请告知如何实现。

***现有代码*****

list_of_join_columns = ['ID']

解决方法

在联接条件中,您需要在列中标记数据框名称和列,以防两个数据框中的列名称不同

此外,建议重命名正确的数据框公用列,例如id

right_df = right_df.withColumnRenamed("ID","right_ID")

new_df = left_df.join(right_df,(left_df.ID == right_df.right_ID) & ((left_df.DATE1 < right_df.DATE2) & (left_df.DATE3 > right_df.DATE4))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...