Apache-Iceberg-Tabellen in Athena für Spark verwenden
Apache Iceberg
Um Apache-Iceberg-Tabellen in Athena für Spark zu verwenden, konfigurieren Sie die folgenden Spark-Eigenschaften. Diese Eigenschaften werden standardmäßig in der Athena für Spark-Konsole für Sie konfiguriert, wenn Sie Apache-Iceberg als Tabellenformat wählen. Die Schritte finden Sie in Schritt 4: Bearbeiten Sie Sitzungsdetails oder Schritt 7: Erstellen Sie ein eigenes Notebook.
"spark.sql.catalog.spark_catalog": "org.apache.iceberg.spark.SparkSessionCatalog", "spark.sql.catalog.spark_catalog.catalog-impl": "org.apache.iceberg.aws.glue.GlueCatalog", "spark.sql.catalog.spark_catalog.io-impl": "org.apache.iceberg.aws.s3.S3FileIO", "spark.sql.extensions": "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions"
Das folgende Verfahren zeigt Ihnen, wie Sie eine Apache-Iceberg-Tabelle in einem Notebook von Athena für Spark verwenden. Führen Sie jeden Schritt in einer neuen Zelle im Notebook aus.
Wie Sie Apache-Iceberg-Tabellen in Amazon Athena für Apache Spark verwenden
-
Definieren Sie die Konstanten, die im Notebook verwendet werden sollen.
DB_NAME = "NEW_DB_NAME" TABLE_NAME = "NEW_TABLE_NAME" TABLE_S3_LOCATION = "s3://amzn-s3-demo-bucket" -
Erstellen Sie einen Apache-Spark-DataFrame
. columns = ["language","users_count"] data = [("Golang", 3000)] df = spark.createDataFrame(data, columns) -
Erstellen Sie eine Datenbank.
spark.sql("CREATE DATABASE {} LOCATION '{}'".format(DB_NAME,TABLE_S3_LOCATION)) -
Erstellen Sie eine leere Apache-Iceberg-Tabelle.
spark.sql(""" CREATE TABLE {}.{} ( language string, users_count int ) USING ICEBERG """.format(DB_NAME,TABLE_NAME)) -
Fügt eine Datenzeile in die Tabelle ein.
spark.sql("""INSERT INTO {}.{} VALUES ('Golang', 3000)""".format(DB_NAME,TABLE_NAME)) -
Vergewissern Sie sich, dass Sie die neue Tabelle abfragen können.
spark.sql("SELECT * FROM {}.{}".format(DB_NAME,TABLE_NAME)).show()
Weitere Informationen und Beispiele zur Arbeit mit Spark-DataFrames und Iceberg-Tabellen finden Sie unter Spark-Abfragen