在 Athena 使用 Linux 基礎三角洲湖表的星火 - Amazon Athena

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

在 Athena 使用 Linux 基礎三角洲湖表的星火

Linux Foundation Delta Lake 是您可用於大數據分析的資料表格式。您可以使用 Athena for Spark 直接讀取儲存在 Amazon S3 中的 Delta Lake 資料表。

若要使用 Athena for Spark 中的 Delta Lake 資料表,請設定以下 Spark 屬性。當您選擇 Delta Lake 做為資料表格式時,依預設,通常會在 Athena for Spark 主控台中為您設定這些屬性。如需相關步驟,請參閱 步驟 4:編輯會話詳細信息步驟 7:建立自己的筆記本

"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"
  2. 創建一個阿帕奇星火DataFrame

    columns = ["language","users_count"] data = [("Golang", 3000)] df = spark.createDataFrame(data, columns)
  3. 建立資料庫。

    spark.sql("CREATE DATABASE {} LOCATION '{}'".format(DB_NAME, TABLE_S3_LOCATION))
  4. 建立一個空的 Delta Lake 資料表。

    spark.sql(""" CREATE TABLE {}.{} ( language string, users_count int ) USING DELTA """.format(DB_NAME, TABLE_NAME))
  5. 在資料表中插入一列資料。

    spark.sql("""INSERT INTO {}.{} VALUES ('Golang', 3000)""".format(DB_NAME, TABLE_NAME))
  6. 確認您可以查詢新資料表。

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