Apache Hudi是一種資料湖儲存格式,在Hadoop檔案系統之上提供了更新資料、刪除資料以及消費變化資料的能力,詳情請參見Apache Hudi。本文為您介紹如何在EMR Serverless Spark中實現Hudi表的讀取與寫入操作。
前提條件
已建立工作空間,詳情請參見建立工作空間。
操作流程
步驟一:建立SQL會話
進入會話管理頁面。
在左側導覽列,選擇。
在Spark頁面,單擊目標工作空間名稱。
在EMR Serverless Spark頁面,單擊左側導覽列中的會話管理。
在SQL會話頁面,單擊建立SQL會話。
在建立SQL會話頁面的Spark配置地區,配置以下資訊,單擊建立。詳情請參見管理SQL會話。
中繼資料是當前工作空間的預設Catalog。如果您希望將預設Catalog修改為外部的Hive Metastore,可以參見串連外部Hive Metastore Service。
spark.sql.extensions org.apache.spark.sql.hudi.HoodieSparkSessionExtension spark.sql.catalog.spark_catalog org.apache.spark.sql.hudi.catalog.HoodieCatalog spark.serializer org.apache.spark.serializer.KryoSerializer
步驟二:讀寫Hudi表
進入SQL開發頁面。
在EMR Serverless Spark頁面,單擊左側導覽列中的開發。
在開發目錄頁簽下,單擊
表徵圖。在建立對話方塊中,輸入名稱(例如users_task),類型使用預設的,然後單擊確定。
拷貝如下代碼到新增的SparkSQL頁簽(users_task)中。
CREATE DATABASE IF NOT EXISTS ss_hudi_db; CREATE TABLE ss_hudi_db.hudi_tbl (id INT, name STRING) USING hudi TBLPROPERTIES ( type = 'cow', primaryKey = 'id' ); INSERT INTO ss_hudi_db.hudi_tbl VALUES (1, "a"), (2, "b"); SELECT id, name FROM ss_hudi_db.hudi_tbl ORDER BY id; DROP TABLE ss_hudi_db.hudi_tbl; DROP DATABASE ss_hudi_db;在資料庫下拉式清單中選擇一個資料庫,在會話下拉式清單中選擇剛剛建立的SQL會話。
單擊運行,執行任務。返回資訊如下所示。

相關文檔
SQL任務和任務編排完整的開發流程樣本,請參見SparkSQL開發快速入門。
更多Hudi相關用法和配置,參見Hudi官方文檔。