우선 파이썬을 통해서 엘라스틱서치 데이터를 수집하는 방법은 아래와 같다.
from elasticsearch import Elasticsearch
from elasticsearch.helpers import scan as escan
def searchAPI(query):
es = Elasticsearch('localhost:9200')
index = 'search-2021*'
res = es.search(index=index, body=query)
return res
------------------------------------------------
query = {
"size": 10,
"_source": "[member_id, birth_year, address]",
"query": {
"term": {
"searchword": {
"value": "검색어"
}
}
}
}
res = searchAPI(query)
https://elasticsearch-py.readthedocs.io/en/v7.16.1/
더 많은 사용법은 Docs 를 통해서 알 수 있다.
또한 Pyspark를 사용할 수 있는 환경이 구성되어 있다면 엘라스틱서치 공식 홈페이지에서 설명서와 함께 라이브러리를 받아서 사용할 수 있다. 혹은 maven 을 통해서 설치도 가능하다.
https://www.elastic.co/kr/what-is/elasticsearch-hadoop
자신이 사용하고 있는 Spark, Hadoop 버전에 맞춰서 라이브러리를 Pyspark classpath 에 추가한 뒤 혹은 실행시 추가 한 뒤 아래의 코드를 사용하여 데이터를 수집, 분석 할 수 있다.
df = spark.read.format("org.elasticsearch.spark.sql").option("es.read.field.as.array.include", "NerArray").option("es.nodes","localhost:9200").option("es.nodes.discovery", "true").load("index명")
df.registerTempTable("ner")
spark.sql("show tables").show()
spark.sql("select * from ner").show()
그 후 자유롭게 spark sql 을 이용하여 데이터를 분석할 수 있다.