

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Athena for Spark 中的 Apache Iceberg 資料表
<a name="notebooks-spark-table-formats-apache-iceberg"></a>

[Apache Iceberg](https://iceberg.apache.org/) 是 Amazon Simple Storage Service (Amazon S3) 中大型資料集的開放資料表格式。它可針對大型資料表、原子提交、並行寫入和 SQL 相容資料表演化等，為您提供快速查詢效能。

若要使用 Athena for Spark 中的 Apache Iceberg 資料表，請設定以下 Spark 屬性。當您選擇 Apache Iceberg 做為資料表格式時，依預設，通常會在 Athena for Spark 主控台中為您設定這些屬性。如需相關步驟，請參閱 [步驟 4：編輯工作階段詳細資訊](notebooks-spark-getting-started.md#notebooks-spark-getting-started-editing-session-details) 或 [步驟 7：建立您自己的筆記本](notebooks-spark-getting-started.md#notebooks-spark-getting-started-creating-your-own-notebook)。

```
"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 資料表**

1. 定義要在筆記本中使用的常數。

   ```
   DB_NAME = "NEW_DB_NAME"
   TABLE_NAME = "NEW_TABLE_NAME"
   TABLE_S3_LOCATION = "s3://amzn-s3-demo-bucket"
   ```

1. 建立 Apache Spark [DataFrame](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/dataframe.html)。

   ```
   columns = ["language","users_count"]
   data = [("Golang", 3000)]
   df = spark.createDataFrame(data, columns)
   ```

1. 建立資料庫。

   ```
   spark.sql("CREATE DATABASE {} LOCATION '{}'".format(DB_NAME, TABLE_S3_LOCATION))
   ```

1. 建立一個空的 Apache Iceberg 資料表。

   ```
   spark.sql("""
   CREATE TABLE {}.{} (
   language string,
   users_count int
   ) USING ICEBERG
   """.format(DB_NAME, TABLE_NAME))
   ```

1. 在資料表中插入一列資料。

   ```
   spark.sql("""INSERT INTO {}.{} VALUES ('Golang', 3000)""".format(DB_NAME, TABLE_NAME))
   ```

1. 確認您可以查詢新資料表。

   ```
   spark.sql("SELECT * FROM {}.{}".format(DB_NAME, TABLE_NAME)).show()
   ```

如需有關搭配使用 Spark DataFrames 與 Iceberg 資料表的資訊和範例，請參閱 Apache Iceberg 文件中的 [Spark 查詢](https://iceberg.apache.org/docs/latest/spark-queries/)。