我最近使用spark 2.2查询了一个包含3个节点和1000亿行数据的大型elasticsearch集群。我使用org.elasticsearch:elasticsearch-spark-20_2.11:5.5.0进行spark-es集成。
我确认了所有字段都是简单的字符串类型,我的程序是正确的(没有设置一些优化选项),spark确实下推以帮助最小化输出,但仍然太大。下面是我使用spark时的配置,有什么优化建议吗?
es.scroll.size="10000"
pushdown="true"
es.scroll.keepalive="10m"
我的spark sql代码:
val conf = new SparkConf()
.setAppName("Simple Example")
.set("es.resource", "myIndex/info")
.set("es.read.field","field1, field2, field3")
.set("es.scroll.size","10000")
.set("es.scroll.keepalive","10m")
.set("es.nodes","192.168.12.12")
.set("es.port","9200")
.set("pushdown","true");
val sc = new SparkContext(conf);
val df = sc.sql("select * from myIndex where name = 'exampleName'")
Executor compute time
太长了。