Spark-elasticsearch에서 SQL 문을 사용하면 응답속도가 매우느립니다

안녕하세요? 현재 es에서 spark로 데이터를 읽어와 SQL 처리를 하는 기능을 적용중인데요.

아래와 같은 코드 사용시 문제가 있습니다.

# Initializing PySpark
from pyspark import SparkContext, SparkConf, SQLContext

# Spark Config
conf = SparkConf().setAppName("es_app")
sc = SparkContext(conf=conf)

# sqlContext
sqlContext = SQLContext(sc)

# ES to dataframe
df = sqlContext.read.format("org.elasticsearch.spark.sql").option("es.nodes","xxx.xxx.xxx.xxx:9200").option("es.nodes.discovery", "true").load("sample")

# make view 
df.registerTempTable("sample")

# Too long
sqlContext.sql("SELECT count(*) from sample").show()

sample에 500만개 정도 document를 가지고 있는데, 저 쿼리를 날리면 결과가 나오기 까지 3~5분 정도 소요가 됩니다.

로그를 보니 모든 document를 가져온 다음 처리하는 듯 한데, 이 문제를 해결하려면 어떻게 해야하나요? 샤드 개수를 늘려보아도 한계가 있네요 ㅠㅠ

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.