java-如何在不使用collect函数的情况下有效地将rdd转换为列表
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-如何在不使用collect函数的情况下有效地将rdd转换为列表,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1271字,纯文字阅读大概需要2分钟。
内容图文
![java-如何在不使用collect函数的情况下有效地将rdd转换为列表](/upload/InfoBanner/zyjiaocheng/693/1ec2448485764d678e3a3dee5cb28426.jpg)
我们知道,如果需要将RDD转换为列表,则应使用collect().但是此功能给驱动程序带来了很大的压力(因为它将所有数据从不同的执行程序带到驱动程序),从而导致性能下降或恶化(整个应用程序可能会失败).
是否有其他方法可以在不使用collect()或collectAsMap()等的情况下将RDD转换为任何Java util集合,而这不会导致性能下降?
基本上,在当前以批处理或流数据处理方式处理大量数据的情况下,诸如collect()和collectAsMap()之类的API在具有大量数据的真实项目中已变得完全无用.我们可以在演示代码中使用它,但是这些API都可以使用.那么为什么要拥有一个我们甚至无法使用的API(或者我错过了什么).
是否可以有更好的方法通过其他方法来达到相同的结果,或者我们可以以更有效的方式实现collect()和collectAsMap(),而不仅仅是调用
列表与LT;字符串> myList = RDD.collect.toList(影响性能)
我抬头看谷歌,但找不到任何有效的方法.如果有人有更好的方法,请提供帮助.
解决方法:
Is there any other way to convert RDD into any of the java util collection without using collect() or collectAsMap() etc which does not cause performance degrade?
不,不可能.如果有这种方法,首先将使用它来实现收集.
好吧,从技术上讲,您可以在RDD(或其中的大多数?)之上实现List接口,但这是一个坏主意,而且毫无意义.
So why to have an API which we can not even use (Or am I missing something).
collect仅用于仅输入大RDD或中间结果且输出足够小的情况.如果不是您这种情况,请改用foreach或其他操作.
内容总结
以上是互联网集市为您收集整理的java-如何在不使用collect函数的情况下有效地将rdd转换为列表全部内容,希望文章能够帮你解决java-如何在不使用collect函数的情况下有效地将rdd转换为列表所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。