E-MapReduce的Hudi 0.8.0版本支持Spark SQL对Hudi进行读写操作,可以极大的简化Hudi的使用成本。本文为您介绍如何通过Spark SQL对Hudi进行读写操作。

前提条件

已创建Hadoop集群,详情请参见创建集群

使用限制

EMR-3.36.0及后续版本和EMR-5.2.0及后续版本,支持Spark SQL对Hudi进行读写操作。

进入spark-sql命令行

  1. 使用SSH方式登录到集群,详情信息请参见登录集群
  2. 执行以下命令,进入spark-sql命令行。
    spark-sql --conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer' \
    --conf 'spark.sql.extensions=org.apache.spark.sql.hudi.HoodieSparkSessionExtension'
    当返回信息中包含如下信息时,表示已进入spark-sql命令行。
    spark-sql>

SQL操作

  • 新建表
    create table h0 (
                   id bigint,
                   name string,
                   price double
                 ) using hudi;  
    返回信息中包含如下类似信息,表示创建表格成功。
    Time taken: 1.258 seconds
  • 插入数据
    insert into h0 select 1, 'a1', 10;
    返回信息中包含如下类似信息,表示插入数据成功。
    Time taken: 7.294 seconds
  • 查询数据
    select id,name,price from h0;
    返回信息中包含如下类似信息,表示查询数据成功。
    1  a1  10.0
    Time taken: 1.219 seconds, Fetched 1 row(s)