我想构建一个接收两个参数的函数:columnOne是一个字符串,columnNames是一个数组或字符串。
这样,我将为两个spark DataFrames动态建立联接查询。
问题是我无法复制以下内容:
joinConditionsQueryOne = [(existingHistoryData.colRegex(columnOne) == newHistoryData.colRegex(joinColumn ) &
(
(existingHistoryData.colRegex(columnNames[0]) !=newHistoryData.colRegex(columnNames[0])) |
(existingHistoryData.colRegex(columnNames[1])!= newHistoryData.colRegex(columnNames[1])) |
(existingHistoryData.colRegex(columnNames[n])!= newHistoryData.colRegex(columnNames[n]))
)]
有没有一种方法可以“追加”列表中的某些项目?我已经尝试过
joinConditionsQueryTwo = []
joinConditionsQueryTwo .append(existingHistoryData.column1 != newHistoryData.column1)
joinConditionsQueryTwo .append(existingHistoryData.column1 != newHistoryData.column1)
但是构建joinConditionsQueryOne的结果是:
[Column<b'((Id = Id) AND ((NOT (column1 = column1 )) OR (NOT (column2 = column2))))'>]
对于joinConditionsQueryTwo是:
[Column<b'((NOT (column1 = column1 )) OR (NOT (column2 = column2)))'>, Column<b'(NOT (column3 = column3)))'>]
这是我可以动态添加'OR'或'AND'子句的方式吗?