Usa le tabelle Delta Lake di Linux Foundation in Athena per Spark - Amazon Athena

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Usa le tabelle Delta Lake di Linux Foundation in Athena per Spark

Linux Foundation Delta Lake è un formato di tabella che puoi utilizzare per la Big data/analisi. Puoi usare Athena per Spark per leggere direttamente le tabelle Delta Lake archiviate in Amazon S3.

Per utilizzare le tabelle Delta Lake in Athena per Spark, configura le seguenti proprietà Spark. Queste proprietà sono configurate automaticamente nella console Athena for Spark quando scegli Delta Lake come formato di tabella. Per la procedura, consulta Passaggio 4: Modificare i dettagli della sessione o Fase 7: Crea il tuo taccuino.

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

La seguente procedura mostra come utilizzare una tabella Delta Lake in un notebook Athena per Spark. Esegui ogni passaggio in una nuova cella del notebook.

Per usare una tabella Delta Lake in Athena per Spark
  1. Definisci le costanti da usare nel notebook.

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

    columns = ["language","users_count"] data = [("Golang", 3000)] df = spark.createDataFrame(data, columns)
  3. Crea un database.

    spark.sql("CREATE DATABASE {} LOCATION '{}'".format(DB_NAME, TABLE_S3_LOCATION))
  4. Crea una tabella Delta Lake vuota.

    spark.sql(""" CREATE TABLE {}.{} ( language string, users_count int ) USING DELTA """.format(DB_NAME, TABLE_NAME))
  5. Inserisci una riga di dati nella tabella.

    spark.sql("""INSERT INTO {}.{} VALUES ('Golang', 3000)""".format(DB_NAME, TABLE_NAME))
  6. Conferma di poter eseguire query sulla nuova tabella.

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