Utiliser les tables Delta Lake de la Linux Foundation dans Athena pour Spark - Amazon Athena

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utiliser les tables Delta Lake de la Linux Foundation dans Athena pour Spark

Linux Foundation Delta Lake est un format de table que vous pouvez utiliser pour l'analytique du big data. Vous pouvez utiliser Athena pour Spark pour lire directement les tables de Delta Lake stockées dans Amazon S3.

Pour utiliser les tables Delta Lake dans Athena pour Spark, configurez les propriétés Spark suivantes. Ces propriétés sont configurées pour vous par défaut dans la console Athena pour Spark lorsque vous choisissez Delta Lake comme format de table. Pour les étapes, consultez Étape 4 : Modifier les détails de la session ou Étape 7 : Créez votre propre carnet.

"spark.sql.catalog.spark_catalog" : "org.apache.spark.sql.delta.catalog.DeltaCatalog", "spark.sql.extensions" : "io.delta.sql.DeltaSparkSessionExtension"

La procédure suivante explique comment utiliser une table Delta Lake dans un bloc-notes Athena pour Spark. Exécutez chaque étape dans une nouvelle cellule du bloc-notes.

Pour utiliser une table Delta Lake dans Athena pour Spark
  1. Définissez les constantes à utiliser dans le bloc-notes.

    DB_NAME = "NEW_DB_NAME" TABLE_NAME = "NEW_TABLE_NAME" TABLE_S3_LOCATION = "s3://amzn-s3-demo-bucket"
  2. Créez un Apache Spark DataFrame.

    columns = ["language","users_count"] data = [("Golang", 3000)] df = spark.createDataFrame(data, columns)
  3. Créez une base de données.

    spark.sql("CREATE DATABASE {} LOCATION '{}'".format(DB_NAME, TABLE_S3_LOCATION))
  4. Créez une table Delta Lake vide.

    spark.sql(""" CREATE TABLE {}.{} ( language string, users_count int ) USING DELTA """.format(DB_NAME, TABLE_NAME))
  5. Insérez une ligne de données dans la table.

    spark.sql("""INSERT INTO {}.{} VALUES ('Golang', 3000)""".format(DB_NAME, TABLE_NAME))
  6. Confirmez que vous pouvez interroger la nouvelle table.

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