问题描述
我正在从另一个问题中使用此代码:我的问题是除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))