Athena for Spark에서 Apache Hudi 테이블 사용
Apache Hudi
Athena for Spark에서 Apache Hudi 테이블을 사용하려면 다음 Spark 속성을 구성합니다. Apache Hudi를 테이블 형식으로 선택하면 Athena for Spark 콘솔에서 이러한 속성이 기본적으로 구성됩니다. 관련 단계는 4단계: 세션 세부 정보 편집 또는 7단계: 자체 노트북 생성 섹션을 참조하세요.
"spark.sql.catalog.spark_catalog": "org.apache.spark.sql.hudi.catalog.HoodieCatalog", "spark.serializer": "org.apache.spark.serializer.KryoSerializer", "spark.sql.extensions": "org.apache.spark.sql.hudi.HoodieSparkSessionExtension"
다음 절차는 Athena for Stork 노트북에서 Apache Hudi 테이블을 사용하는 방법을 보여줍니다. 노트북의 새 셀에서 각 단계를 실행합니다.
Athena for Spark에서 Apache Hudi 테이블을 사용하려면
-
노트북에서 사용할 상수를 정의합니다.
DB_NAME = "
NEW_DB_NAME
" TABLE_NAME = "NEW_TABLE_NAME
" TABLE_S3_LOCATION = "s3://amzn-s3-demo-bucket" -
Apache Spark DataFrame
을 생성합니다. columns = ["language","users_count"] data = [("Golang", 3000)] df = spark.createDataFrame(data, columns)
-
데이터베이스를 생성합니다.
spark.sql("CREATE DATABASE {} LOCATION '{}'".format(
DB_NAME
,TABLE_S3_LOCATION
)) -
빈 Apache Hudi 테이블을 생성합니다.
spark.sql(""" CREATE TABLE {}.{} ( language string, users_count int ) USING HUDI TBLPROPERTIES ( primaryKey = 'language', type = 'mor' ); """.format(
DB_NAME
,TABLE_NAME
)) -
테이블에 데이터 행을 삽입합니다.
spark.sql("""INSERT INTO {}.{} VALUES ('Golang', 3000)""".format(
DB_NAME
,TABLE_NAME
)) -
새 테이블을 쿼리할 수 있는지 확인합니다.
spark.sql("SELECT * FROM {}.{}".format(
DB_NAME
,TABLE_NAME
)).show()