使用Spark SQL进行作业开发

更新时间:

本文介绍如何使用Spark SQL进行外表作业开发。

前提条件

步骤一:创建OSS Hudi外表

  1. 登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,在企业版、基础版或湖仓版页签下,单击目标集群ID。

  2. 在左侧导航栏,单击作业开发 > SQL开发

  3. SQLConsole窗口,选择Spark引擎、Job型资源组或Spark Interactive型资源组。

  4. 输入以下语句,并单击执行SQL(F8),创建一个名为spark_external_db的外库,用于存储Hudi数据。本文以oss://testBucketName/adb-test-1/路径为例。

    CREATE DATABASE spark_external_db
    LOCATION 'oss://testBucketName/adb-test-1/';
  5. spark_external_db库中创建外表spark_hudi_table,用于存储Hudi数据。本文示例为oss://testBucketName/adb-test-1/spark_external_db/

    CREATE TABLE spark_external_db.spark_hudi_table
    (id int,
     name string,
     score int,
     city string
    )
    using hudi
    partitioned by (id)
    tblproperties
    (primaryKey = 'id', 
    preCombineField = 'city')
    LOCATION 'oss://testBucketName/adb-test-1/spark_external_db/';
  6. 插入数据。

    INSERT OVERWRITE spark_external_db.spark_hudi_table PARTITION(id) VALUES
    (001,'Anna',99,'London'),
    (002,'Bob',67,'USA'),
    (003,'Cindy',78,'Spain'),
    (004,'Dan',100,'China');

步骤二:查询OSS Hudi外表数据

  1. 输入以下语句,并单击执行SQL(F8),查询外表spark_hudi_table数据。

    SELECT * FROM spark_external_db.spark_hudi_table;
    说明
    • 如果湖仓版集群中有计算预留资源,或企业版集群中有预留资源,可以使用XIHE MPP SQL在线方式(即选择XIHE引擎和Interactive资源组)查询外表数据。

  2. 作业开发 > Spark Jar 开发页面的应用列表中,单击目标SQL查询语句操作列的日志,在日志中可以查看表数据。