我有一个带有Spark 1.6的python DataFrame。例如
DF= ("timestamp","canal", "name")
示例数据:
[('1980-02-24'),('google.com/General'),('Alice')]
[('1980-02-24'),('google.com/Dataset'),('bob')]
[('1980-02-24'),('googleserach.com'),('Malik')]
[('1980-02-24'),('googlesearch.com/AIPlateforme'),('AliceBob')]
[('1980-02-24'),('yahooserach.com'),('Bob2')]
[('1980-02-24'),('yahoosearch.com/AIPlateforme'),('Alice2')]
DF.count() = 6
我想了解所有内容,"canal"
not contain
substring
googleserach.com
和yahoosearch
我创建了一个变量:
canal_2 = "googleserach.com,yahoosearch"
然后:
解决方案1:
result = DF.filter(~DF.canal.isin (canal_2)) ==> does not work
result.count() = 6
解决方案2:
if (canal2 not in DF.canal) ==> invalid syntax
如何对DataFrame进行过滤以使“运河”不包含googlesearch
和yahoosearch
的行?
谢谢
答案 0 :(得分:1)
rlike
和regex
将起作用。
regexNegativeLB= "^/(?!googlesearch|yahoosearch)$"
newDF= DF.filter(DF["canal"].rlike(regexNegativeLB))
答案 1 :(得分:0)
import { logText, Example } from 'example';
// Do some magic here to modify the functionality of logText
new Example();
也有可能。 pyspark没有包含它。
答案 2 :(得分:0)
df.filter(〜df [“ canal”]。isin(canal_2))。collect() 试试这个。