栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Apache Spark中,我可以轻松地重复/嵌套一个SparkContext.parallelize吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Apache Spark中,我可以轻松地重复/嵌套一个SparkContext.parallelize吗?

让我从您的“背景问题”开始。变换操作喜欢

map
join
groupBy
等分为两类;
那些需要从所有分区中输入数据进行洗牌的企业,而那些不需要。像操作
groupBy
join
需要洗牌,因为你需要把所有的RDD的相同的按键分区所有记录(想想如何SQL的
JOIN
GROUPBY
OPS工作)。在另一方面,
map
flatMap
filter
,等不需要洗牌,因为操作的工作原理上一步的分区的输入罚款。它们一次只能处理单个记录,而不是具有匹配键的一组记录。因此,不需要改组。

要了解“额外地图”没有明显的开销,此背景是必需的。诸如

map
flatMap
等之类的一系列操作被“压缩”到一个“阶段”(当您在Spark
Web控制台中查看作业的详细信息时将显示该阶段),以便仅实现一个RDD,最后一个实现舞台。

关于您的第一个问题。我不会为此使用累加器。它们用于“边带”数据,例如计算要分析的坏行数。在此示例中,作为示例,您可能使用累加器来计算在1半径内与在1半径内的对(x,y)对。

JavaPiSpark
Spark发行版中的示例已尽善尽美。您应该研究它为什么起作用。这是大数据系统的正确数据流模型。您可以使用“聚合器”。在Javadocs中,单击“索引”的一下
agg
aggregate
aggregateByKey
功能。但是,它们不再是可以理解的,在这里也没有必要。他们提供更大的灵活性比
map
随后
reduce
,所以他们是值得了解的

代码的问题在于,您实际上是在试图告诉Spark该怎么做,而不是表达您的意图并让Spark优化它为您执行的方式。

最后,我建议您购买和研究O’Reilly的“ Learning Spark”。它很好地解释了内部细节(例如暂存),并显示了许多示例代码,您也可以使用。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/438981.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号