Spark- SparkSQL中 Row.getLong 出现NullPointerException错误的处理方法

Posted xiaopihaierletian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark- SparkSQL中 Row.getLong 出现NullPointerException错误的处理方法相关的知识,希望对你有一定的参考价值。

ERROR:在SparkSQL中获取Row的值,而且Row的字段允许null时,在取值的时候取到null赋值给新的变量名会报NullPointerException错误

解决:可以先用row.isNullAt(index)去判断该字段的值是否为空

具体案例如下:

首先上错误

修改为先初始化变量,判断row.isNullAt(6) 如果不为空就将值赋值给变量

从row中get值时, 经常遇到空的问题
简单总结如下:
get数值类型:如果为空, 则转化为0
判空, 建议使用row.isNullAt(index)

get字符串类型:如果为空则为null
判空建议用:StringUtils.isEmpty() (出现""的情况)

总结:获取值用getAsT
判空用row.isNullAt
以及StringUtils.isEmpty()

以上是关于Spark- SparkSQL中 Row.getLong 出现NullPointerException错误的处理方法的主要内容,如果未能解决你的问题,请参考以下文章

sparksql 表定义 存储在哪

spark学习之sparksql语法优化

spark学习之sparksql语法优化

SparkSQL与Hive on Spark的比较

大数据-spark理论sparkSql,sparkStreaming,spark调优

sparksql怎么批量删除分区