본문 바로가기

우선 파이썬을 통해서 엘라스틱서치 데이터를 수집하는 방법은 아래와 같다.

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/

 

Python Elasticsearch Client — Elasticsearch 7.16.1 documentation

This client was designed as very thin wrapper around Elasticsearch’s REST API to allow for maximum flexibility. This means that there are no opinions in this client; it also means that some of the APIs are a little cumbersome to use from Python. We have

elasticsearch-py.readthedocs.io

더 많은 사용법은 Docs 를 통해서 알 수 있다.

또한 Pyspark를 사용할 수 있는 환경이 구성되어 있다면 엘라스틱서치 공식 홈페이지에서 설명서와 함께 라이브러리를 받아서 사용할 수 있다. 혹은 maven 을 통해서 설치도 가능하다.

https://www.elastic.co/kr/what-is/elasticsearch-hadoop

 

Hadoop용 Elasticsearch

양방향 커넥터가 Apache Hadoop과 Elasticsearch 양쪽 모두에서 신속하게 빅데이터의 성능을 활용하도록 도와줍니다. 지금 무료로 다운로드하세요.

www.elastic.co

자신이 사용하고 있는 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 을 이용하여 데이터를 분석할 수 있다.

엉망진창

개인 블로그 입니다. 코딩, 맛집, 정부정책, 서비스, ~방법 등 다양한 정보를 소개합니다