Apache Iceberg
Athena for Spark에서 Apache Iceberg 테이블을 사용하려면 다음 Spark 속성을 구성합니다. Apache Iceberg를 테이블 형식으로 선택하면 Athena for Spark 콘솔에서 이러한 속성이 기본적으로 구성됩니다. 관련 단계는 4단계: 세션 세부 정보 편집 또는 7단계: 자체 노트북 생성 섹션을 참조하세요.
"spark.sql.catalog.spark_catalog": "org.apache.iceberg.spark.SparkSessionCatalog", "spark.sql.catalog.spark_catalog.catalog-impl": "org.apache.iceberg.aws.glue.GlueCatalog", "spark.sql.catalog.spark_catalog.io-impl": "org.apache.iceberg.aws.s3.S3FileIO", "spark.sql.extensions": "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions"
다음 절차는 Athena for Stork 노트북에서 Apache Iceberg 테이블을 사용하는 방법을 보여줍니다. 노트북의 새 셀에서 각 단계를 실행합니다.
Athena for Spark에서 Apache Iceberg 테이블을 사용하려면
-
노트북에서 사용할 상수를 정의합니다.
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 Iceberg 테이블을 생성합니다.
spark.sql(""" CREATE TABLE {}.{} ( language string, users_count int ) USING ICEBERG """.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()
Spark DataFrames 및 Iceberg 테이블을 사용하는 방법에 대한 자세한 내용 및 예제는 Apache Iceberg 설명서의 Spark Queries