在EMR Serverless Spark中使用Hudi
Apache Hudi是一種數(shù)據(jù)湖存儲(chǔ)格式,在Hadoop文件系統(tǒng)之上提供了更新數(shù)據(jù)、刪除數(shù)據(jù)以及消費(fèi)變化數(shù)據(jù)的能力,詳情請(qǐng)參見Apache Hudi。本文為您介紹如何在EMR Serverless Spark中實(shí)現(xiàn)Hudi表的讀取與寫入操作。
前提條件
已創(chuàng)建工作空間,詳情請(qǐng)參見創(chuàng)建工作空間。
操作流程
步驟一:創(chuàng)建SQL會(huì)話
進(jìn)入會(huì)話管理頁面。
在左側(cè)導(dǎo)航欄,選擇
。在Spark頁面,單擊目標(biāo)工作空間名稱。
在EMR Serverless Spark頁面,單擊左側(cè)導(dǎo)航欄中的會(huì)話管理。
在SQL會(huì)話頁面,單擊創(chuàng)建SQL會(huì)話。
在創(chuàng)建SQL會(huì)話頁面的Spark配置區(qū)域,配置以下信息,單擊創(chuàng)建。詳情請(qǐng)參見管理SQL會(huì)話。
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 spark.jars /opt/hudi/hudi-spark.jar
步驟二:讀寫Hudi表
進(jìn)入SQL開發(fā)頁面。
在EMR Serverless Spark頁面,單擊左側(cè)導(dǎo)航欄中的開發(fā)。
在開發(fā)目錄頁簽下,單擊新建。
在新建對(duì)話框中,輸入名稱(例如users_task),類型使用默認(rèn)的SparkSQL,然后單擊確定。
拷貝如下代碼到新增的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;
在數(shù)據(jù)庫下拉列表中選擇一個(gè)數(shù)據(jù)庫,在會(huì)話下拉列表中選擇剛剛創(chuàng)建的SQL會(huì)話。
單擊運(yùn)行,執(zhí)行任務(wù)。返回信息如下所示。
相關(guān)文檔
SQL任務(wù)和任務(wù)編排完整的開發(fā)流程示例,請(qǐng)參見SQL開發(fā)快速入門。
更多Hudi相關(guān)用法和配置,參見Hudi官方文檔。