自定义过滤器未命中的spark null指针异常

时间:2016-10-27 15:53:30

标签: apache-spark spark-dataframe

我有一个自定义过滤器函数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"))
}

1 个答案:

答案 0 :(得分:0)

filter()保留计算结果为true的记录。在您的情况下,所有空记录的计算结果为true。那么,将filterFunc更改为“ua!= null”?