#PySpark #Scala #Version #Opensearch
PySpark with Opensearch
PySpark 버전과 Scala 버전을 확인해야 하는데,
>> echo $SPARK_HOME
해보면 아마도 /opt/spark 에 위치하고 있을 것 같고
>> ls /opt/spark/jars | grep spark
확인해보면 대략 JAR 의 이름이
이러면 3.5.3 에 2.12 를 쓰고있다. 라고 이해하면 될 듯.
해당 정보를 통해서 Opensearch 와 연동을 하는데
Opensearch 는 AWS 에서 사용하는 ES 포크 버전 정도로 이해하고 있는데
거의 유사한 서치엔진(?) & 벡터디비(Vector DB) 로 사용중이다.
하나의 예시 INDEX 를 매핑 및 생성하고 데이터를 넣어두었는데,
PySpark 을 이용해서 해당 INDEX 의 데이터를 읽어볼 수 있다.
이렇게 Spark Session 을 생성해보면
정상적으로 이것저것 다운받는데
이어서 바로 spark 로 해당하는 Opensearch Node 에 SIGV4 로 붙어서 접근 가능한지 확인한다.
OPENSEARCH_HOST_URL = "YOUR_OPENSEARCH_NODE_ENDPOINT.ap-northeast-2.es.amazonaws.com"
OPENSEARCH_HOST_PORT = "443"
AWS_REGION = "ap-northeast-2"
INDEX_NAME = "YOUR_INDEX_NAME"
df = (
spark.read.format("opensearch")
.option("opensearch.nodes", f"https://{OPENSEARCH_HOST_URL}")
.option("opensearch.port", OPENSEARCH_HOST_PORT)
.option("opensearch.nodes.wan.only", "true")
.option("opensearch.net.ssl", "true")
.option("opensearch.aws.sigv4.enabled", "true")
.option("opensearch.aws.sigv4.region", AWS_REGION)
.load(INDEX_NAME)
)
이후에는 기존에 하던대로 df.show() 해보면 데이터가 보인다.