我使用spark来阅读elasticsearch.Like
select col from index limit 10;
问题是索引非常大,它包含1000亿行。并且spark产生数千个任务来完成工作。
我只需要10行,即使1个任务也可以返回10行,可以完成工作。我不需要这么多任务。
限制非常缓慢甚至限制1.
代码:
sql = select col from index limit 10
sqlExecListener.sparkSession.sql(sql).createOrReplaceTempView(tempTable)
答案 0 :(得分:2)
source code of limit表明,它将为每个分区使用前limit
个元素,然后它将扫描所有分区。
要加快查询速度,可以指定分区键的一个值。假设您使用day
作为分区键,则以下查询会更快
select col from index where day = '2018-07-10' limit 10;