我有一个自定义过滤器函数writtern:
def filterSpiderBots(inputDF: DataFrame, whitelistMatcher: Matcher) {
val filterFunc = udf(
(ua:String) => ua == null || whitelistMatcher.matches(ua)
)
inputDF.filter(filterFunc($"ua"))
}
匹配器从
读取FileInputStream(SparkFiles.get("iab-whitelist.txt"))
我确保Match不为null,并且我检查了null ua。 但是当我启动程序时,我仍然得到NullPointerException。我不知道它的原因是什么..
更新
不使用匹配后,我仍然得到相同的错误
def filterSpiderBots(inputDF: DataFramer) {
val filterFunc = udf(
(ua:String) => ua == null
)
inputDF.filter(filterFunc($"ua"))
}
答案 0 :(得分:0)
filter()保留计算结果为true的记录。在您的情况下,所有空记录的计算结果为true。那么,将filterFunc更改为“ua!= null”?