

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

# 使用 Athena for Spark 中的 Linux Foundation Delta Lake 資料表
<a name="notebooks-spark-table-formats-linux-foundation-delta-lake"></a>

[Linux Foundation Delta Lake](https://delta.io/) 是您可用於大數據分析的資料表格式。您可以使用 Athena for Spark 直接讀取儲存在 Amazon S3 中的 Delta Lake 資料表。

若要使用 Athena for Spark 中的 Delta Lake 資料表，請設定以下 Spark 屬性。當您選擇 Delta Lake 做為資料表格式時，依預設，通常會在 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.spark.sql.delta.catalog.DeltaCatalog", 
"spark.sql.extensions" : "io.delta.sql.DeltaSparkSessionExtension"
```

下列程序將告訴您如何在 Athena for Spark 筆記本中使用 Delta Lake 資料表。在記事本的新儲存格中執行每個步驟。

**若要使用 Athena for Spark 中的 Delta Lake 資料表**

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. 建立一個空的 Delta Lake 資料表。

   ```
   spark.sql("""
   CREATE TABLE {}.{} ( 
     language string, 
     users_count int 
   ) USING DELTA 
   """.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()
   ```