env:spark1.6使用hadoop。hortonworks数据平台2.5
我有一个有100亿条记录的表,我想得到3亿条记录并将它们移到一个临时表中。
sqlContext.sql("select ....from my_table limit 300000000").repartition(50)
.write.saveAsTable("temporary_table")
我看到limit关键字实际上会使spark只使用一个executor!!!这意味着将3亿条记录移动到一个节点,并将其写回hadoop。我如何才能避免这种减少,但仍然得到只有3亿记录,而有一个以上的执行者。我想所有的节点都写进hadoop。
取样能帮我吗?如果是,怎么办?
1条答案
按热度按时间oknwwptz1#
取样方法如下:
或