在SPARK SQL 中使用UDF处理HIVE源的数据时,发现UDF中处理了null,但是SPARK在执行过程中仍然会报空指针错误。 查阅资料,HIVE底层数据保存的NULL值并不是null,而是 \N。
HIVE配置如下
ALTER TABLE NAME SET SERDEPROPERTIES('serialization.null.format'='\N');
此时,HIVE 中查询字符串为空可以使用语句
a IS NULL
或
a ='\\N'
在JAVA UDF 中,判断传参为空只能通过
a.equals("\\N")
而不能使用
a==null
参考网站
hive 空值、NULL判断