本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Athena 使用阿帕奇冰山表的星火
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 Spark 筆記本中使用 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" -
創建一個阿帕奇星火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 和範例,請參閱 Apache 冰山文件中的 Spark 查詢