[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

猜你喜欢

转载自blog.csdn.net/qq_35394891/article/details/82319133
今日推荐