我有:
+-----------+------+
|ColA |ColB |
+-----------+------+
| A | B|
| A | D|
| C | U|
| B | B|
| A | B|
+-----------+------+
,我想得到:
+-----------+------+
|ColA |ColB |
+-----------+------+
| A | D|
| C | U|
| B | B|
+-----------+------+
我想删除"colA == A"one_answers"colB == B"组合的所有行。当我尝试这个SQL语句
SELECT * FROM table where (colA != 'A' and colB != 'B')
工作得很好。
但是当我试图翻译成spark(甚至是pandas)时,我得到了一个错误。
Py4JError:调用o109.and时发生错误。跟踪:…
#spark
sparkDF.where((sparkDF['colA'] != 'A' & sparkDF['colB'] != 'B')).show()
#pandas
pandasDF[(pandasDF["colA"]!="A" & pandasDF["colB"]!="B")]
我在这里做错了什么?
需要为位或添加括号和|
:
pandasDF[(pandasDF["colA"]!="A") | (pandasDF["colB"]!="B")]
sparkDF.where((sparkDF['colA'] != 'A') | (sparkDF['colB'] != 'B')).show()