Linux Foundation Delta Lake - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Linux Foundation Delta Lake

Linux Foundation Delta Lake 是一种用于大数据分析的表格式。可使用 Athena for Spark 直接读取存储在 Amazon S3 中的 Delta Lake 表。

要在 Athena for Spark 中使用 Delta Lake 表,配置以下 Spark 属性。当选择 Delta Lake 作为表格式时,这些属性是在 Athena for Spark 控制台中默认配置的属性。有关步骤,请参阅 编辑会话详细信息创建您自己的笔记本

"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://example_path"
  2. 创建 Apache Spark 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()