博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spark心得体会
阅读量:6766 次
发布时间:2019-06-26

本文共 616 字,大约阅读时间需要 2 分钟。

hot3.png

1. 在spark中,你编写的代码会被spark转义为graph分发给work处理,因此要特别注意你写的代码被翻译之后会变成啥样。并且在翻译为graph时,因为要把任务分发出去,因此其中所有变量都必须是可以序列化的,因此就不能嵌套使用rdd等spark数据结构(如rdd的map方法中引用了外部rdd变量则会导致无法生成graph,程序在启动时就会马上报错),正确的使用方式应该是调用api如:union,join,group等。

2. 所有计算都只会在action那行执行,而且日志中会明确告诉你什么时候执行了代码中哪一行的action,并且日志还会告诉你很多附加信息,因此多仔细看日志有助于编写更合理的spark代码。

3. 一定要记住,执行action的那步就是你要输出结果的那步,因此在编码时要非常确认地分开编写算法和输出结果两部分,不要在编写算法那部分执行action操作。

4. 输出结果时要注意,如果是输出到driver中的变量里,那么需要collect之后再输出,如果是输出到外部系统则可以不collect,由各个work自己去输出更好。

5. 测试中的eventually是会去等待执行结果正确后才往下走,但是其是周期性地去检查,所以要注意它可能读到多个结果中某个正确的结果而导致断言过了,而最终结果却是不正确的。

转载于:https://my.oschina.net/lovelyBoy/blog/1549745

你可能感兴趣的文章
蒲京博士为第七届环海南岛国际大帆船赛创造历史
查看>>
百花园传媒创始人辛东方:创业者面临三大瓶颈
查看>>
rh124-15(2)之桥接和NAT
查看>>
记一次负载均衡+NFS博客站点搭建的总结
查看>>
原创文章
查看>>
QT 库连接问题
查看>>
Visual Leak Detector (VLD)使用
查看>>
UITextField设置placeholder颜色
查看>>
Incrontab(事件触发任务命令)文档说明
查看>>
华为PAT端口地址映射配置详解(二)
查看>>
9.Forms
查看>>
我不再像两年前那样勇敢
查看>>
华为java研发实习面试经验
查看>>
匿名方法、lambda
查看>>
马哥教育第十一天、十二天学习总结
查看>>
Redis消息队列
查看>>
Linux决心书
查看>>
LNMP架构 安装PHP
查看>>
怎么配置一台电脑
查看>>
中小型企业网络构建 OSPF 多区域配置
查看>>