环境:spark:1.6.3 and 2.2.1
我有一张Hive桌,像:
Create table test (id int,name string)
stored as parquet
此表包含12k个文件。
为什么spark在运行limit 100这样的查询时要计算12k个任务。
e.g. spark-shell
scala> sqlContext.sql("SELECT id,name FROM test LIMIT 100").count()
[Stage 8:> (0 + 8) / 11258]
or
scala>val df2 =sqlContext.sql("SELECT id,name FROM test LIMIT 100")
scala> df2.write.save("/tmp/deleteme/")
[Stage 12:> (0 + 8) / 11258]
有没有办法防止这种行为?spark2有点不同,但仍然像>10k任务。
我知道tablesample,但我想知道为什么spark会这样做,如果有一个设置来改变这一点。
提前谢谢
暂无答案!
目前还没有任何答案,快来回答吧!