ios上的spark邮箱如何添加租用电信21cn服务器的企业邮箱?

ios上的spark邮箱如何添加租用电信21cn服务器的企业邮箱?,第1张

确保你的QQ邮箱设置已经打开“IMAP/SMTP服务”

2.生成授权码 

3.进入spark客户端选择“添加账户”---“其他”---输入邮箱账户名及密码(注意此时密码应该填写刚才生成的授权码!!)---“显示高级设置”

4.严格进行以下设置

首先设置imap 如图:

<迹酣管叫攮既归习害卢p>

再设置STMP 端口改为“465”安全改为“SSL” 如图:

5.登陆!

终于到了最后一步执行了:

最关键的两个函数便是 doPrepare和 doExecute了。

还是以上一章的sql语句为例,其最终生成的sparkplan为:

看一下SortExec的doPrepare 和 doExecute方法:

下面看child也就是ShuffleExchangeExec:

先看没有exchangeCoordinator的情况,

首先执行:

上面的方法会返回一个ShuffleDependency,ShuffleDependency中最重要的是rddWithPartitionIds,它决定了每一条InternalRow shuffle后的partition id:

接下来:

返回结果是ShuffledRowRDD:

CoalescedPartitioner的逻辑:

再看有exchangeCoordinator的情况:

同样返回的是ShuffledRowRDD:

再看doEstimationIfNecessary:

estimatePartitionStartIndices 函数得到了 partitionStartIndices:

有exchangeCoordinator的情况就生成了partitionStartIndices,从而对分区进行了调整。

最后来一个例子:

未开启exchangeCoordinator的plan:

开启exchangeCoordinator的plan:

不同之处是 两个Exchange都带了coordinator,且都是同一个coordinator。

执行withExchangeCoordinator前:

执行withExchangeCoordinator后:

生成了coordinator,且执行了 doPrepare后,可以看到两个exchange都向其注册了。

doExecute后:

原先的numPartitions是200,经过执行后,生成的partitionStartIndices为[1],也就是只有1个partition,显然在测试数据量很小的情况下,1个partition是更为合理的。这就是ExchangeCoordinator的功劳。

execute 最终的输出是rdd,剩下的结果便是spark对rdd的运算了。其实 spark sql 最终的目标便也是生成rdd,交给spark core来运算。

spark sql的介绍到这里就结束了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11277705.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存