两个表pyspark之间的自定义联接条件函数

时间:2019-11-02 20:02:17

标签: python pyspark pyspark-dataframes

我想构建一个接收两个参数的函数: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'子句的方式吗?

0 个答案:

没有答案