【发布时间】:2017-07-19 15:53:57
【问题描述】:
Env:使用 Hadoop 的 spark 1.6。 Hortonworks 数据平台 2.5
我有一个包含 100 亿条记录的表,我想获取 3 亿条记录并将它们移动到一个临时表中。
sqlContext.sql("select ....from my_table limit 300000000").repartition(50)
.write.saveAsTable("temporary_table")
我看到 Limit 关键字实际上会让 spark 只使用一个执行器!!!这意味着将 3 亿条记录移动到一个节点并将其写回 Hadoop。 我怎样才能避免这种减少,但在拥有多个执行者的情况下仍然只获得 3 亿条记录。我希望所有节点都写入 hadoop。
抽样可以帮我解决这个问题吗?如果有怎么办?
【问题讨论】:
-
哪些记录重要吗?如果没有,那么您可以使用示例函数
标签: hadoop apache-spark hive hortonworks-data-platform