Dav*_*d H 3 hadoop hive hortonworks-data-platform apache-spark
环境:使用Hadoop的spark 1.6.Hortonworks数据平台2.5
我有一张包含100亿条记录的表格,我想获得3亿条记录并将它们移到临时表格中.
sqlContext.sql("select ....from my_table limit 300000000").repartition(50)
.write.saveAsTable("temporary_table")
Run Code Online (Sandbox Code Playgroud)
我看到Limit关键字实际上会让spark只使用一个执行器!这意味着将3亿条记录移动到一个节点并将其写回Hadoop.如何避免这种减少,但在拥有多个执行程序的情况下仍然可以获得3亿条记录.我希望所有节点都写入hadoop.
抽样可以帮助我吗?如果是这样的话?
小智 5
采样可以通过以下方式使用: -
select ....from my_table TABLESAMPLE(.3 PERCENT)
Run Code Online (Sandbox Code Playgroud)
要么
select ....from my_table TABLESAMPLE(30M ROWS)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6918 次 |
| 最近记录: |