[spark 面试]NULL值问题及序列化错误

1、NULL值问题如何解决? 
2、序列化错误如何解决?

一些场景下,我们并不需要返回具体的值,这个时候往往我们会返回NULL值,但是有时候你可能在下一步的RDD操作中要求RDD的元素不能够是NULL值,如果是的话就会抛出异常,此时该如何处理呢?这个时候我们可以在继续返回NULL值的基础上,在下一步要使用的时候通过Option进行模式匹配(Some和None)来化解NULL值的情况。还有一种办法:我们可以返回一个特定的值,然后在下一步业务逻辑操作之前进行filter操作,把该特定的值过滤掉,这样就在无形中化解了NULL值的问题。

关于序列化的问题: 
第一种问题:一些库或者框架的对象无法序列化,例如数据库的连接句柄Connection。实际生产环境下经常使用第三方库,所以必须注意第三方库中对象实例能否实例化 
第二种情况:RDD中的元素不能够序列化,实际生产环境下一定会频繁定义RDD(其实是定义RDD中的元素类型),例如说JavaRDD,此时自定义的Animal必须实现Serializable接口 
第三种情况:RDD算子内部在实现业务逻辑的时候使用了外部定义的对象,该外部对象也必须实现序列化接口。

Spark的数据结构是什么?

RDD、DataFrame、DataSet 
Broadcast、Accumulator

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值