

# 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 Stork 노트북에서 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()
   ```