AnalyticDB MySQL版Spark支持在控制台直接提交Spark SQL,无需编写JAR包或者Python代码,便于数据开发人员使用Spark进行数据分析。本文介绍AnalyticDB MySQL版Spark SQL应用的示例代码及命令类型。

开发工具

您可以通过SQL开发编辑器创建和执行Spark SQL应用,详情请参见SQL开发编辑器

示例代码

本文以读取OSS数据为例,描述了典型的Spark SQL应用的编写方式。

-- Here is the spark conf.

conf spark.driver.resourceSpec=medium;
conf spark.executor.resourceSpec=medium;
conf spark.app.name=Spark SQL Test;
conf spark.adb.connectors=oss;

-- Add jars.
add jar oss://example/jars/hive-hcatalog-core-2.3.9.jar;
 
-- Here are your sql statements.
CREATE DATABASE IF NOT EXISTS testdb LOCATION 'oss://<bucket_name>/test';

CREATE EXTERNAL TABLE if not EXISTS `testdb`.`catalog_json_test` (
  `a` string COMMENT 'from deserializer',  
  `b` string COMMENT 'from deserializer')
ROW format serde 
'org.apache.hive.hcatalog.data.JsonSerDe'
LOCATION 
'oss://<bucket_name>/test/catalog_json_test/';

INSERT INTO `testdb`.`catalog_json_test` values('key','value');

SELECT * FROM `testdb`.`catalog_json_test`;

命令类型说明

CONF命令

  • 用于指定Spark的配置,一般置于SQL语句的前面。
  • 每条CONF命令指定一个Spark参数值,每条命令用英文分号(;)隔开。
  • CONF命令的Key和Value均不加单引号或者双引号。
  • CONF命令支持的配置参数,请参见Conf配置参数

ADD JAR命令

  • 用于加载Spark SQL运行时依赖的JAR包,例如UDF的JAR包,各类数据源连接器的JAR包等。目前支持JAR包路径为OSS路径,一般置于SQL语句的前面。
  • 每条ADD JAR命令指定一个OSS JAR包路径,JAR包路径的字符串不添加单引号和双引号,每条ADD JAR命令用英文分号(;)隔开。

SQL语句

Spark SQL所支持的DDL、DML或DQL语句。详情请参见Spark SQL建表语法

例如查询语句SELECT、插入语句INSERT、查看数据库SHOW DATABASE等。