Apache-Hudi-Tabellen in Athena für Spark verwenden
Apache Hudi
Um Apache-Hudi-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-Hudi 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.spark.sql.hudi.catalog.HoodieCatalog", "spark.serializer": "org.apache.spark.serializer.KryoSerializer", "spark.sql.extensions": "org.apache.spark.sql.hudi.HoodieSparkSessionExtension"
Das folgende Verfahren zeigt Ihnen, wie Sie eine Apache-Hudi-Tabelle in einem Athena für Spark-Notebook verwenden. Führen Sie jeden Schritt in einer neuen Zelle im Notebook aus.
Wie Sie Apache-Hudi-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-Hudi-Tabelle.
spark.sql(""" CREATE TABLE {}.{} ( language string, users_count int ) USING HUDI TBLPROPERTIES ( primaryKey = 'language', type = 'mor' ); """.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()