Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwenden Sie Apache Hudi-Tabellen in Athena für Spark
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: Sitzungsdetails bearbeiten oder Schritt 7: Erstellen Sie Ihr eigenes Notizbuch.
"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()