文档首页> 数据湖探索 DLI> 快速入门> 创建并提交Spark SQL作业
更新时间:2024-05-22 GMT+08:00
分享

创建并提交Spark SQL作业

操作场景

DLI可以查询存储在OBS中的数据,本节操作介绍使用DLI提交Spark SQL作业查询OBS数据的操作步骤。

操作流程

使用DLI提交Spark SQL作业查询数据。基本流程如下:

步骤1:上传数据至OBS

步骤2:创建队列

步骤3:创建数据库

步骤4:创建表

步骤5:查询数据

步骤1:上传数据至OBS

使用DLI查询数据前,需要将数据文件上传至OBS中。

  1. 登录管理控制台。
  2. 在服务列表中,单击“存储”中的“对象存储服务OBS”,进入OBS管理控制台页面。
  3. 创建桶,本例桶名以“obs1”为例。
    1. 单击页面右上角“创建桶”
    2. 进入“创建桶”页面,选择“区域”,输入“桶名称”。其他参数保持默认值或根据需要选择。

      创建OBS桶时,需要选择与DLI管理控制台相同的区域,不可跨区域执行操作。

    3. 单击“立即创建”。
  4. 单击所建桶“obs1”,进入“对象”页面。
  5. 勾选左侧列表中的“对象”,选择“上传对象”,将需要上传的文件“sampledata.csv”上传到指定目录,单击“上传”
    “sampledata.csv”样例文件可以通过新建“sampledata.txt”,复制如下英文逗号分隔的文本内容,再另存为“sampledata.csv”
    12,test

    文件上传成功后,待分析的文件路径为“obs://obs1/sampledata.csv”

    • 关于OBS管理控制台更多操作请参考《对象存储服务控制台指南》。
    • OBS上传文件指导,请参见《OBS工具指南》。
    • 针对大文件场景,由于OBS管理控制台对文件大小和数量限制较多,所以推荐使用OBS工具上传大文件,如OBS Browser+或obsutil工具上传。
      • OBS Browser+是一个比较常用的图形化工具,支持完善的桶管理和对象管理操作。推荐使用此工具创建桶或上传对象。
      • obsutil是一款用于访问管理OBS的命令行工具,对于熟悉命令行程序的用户,obsutil是执行批量处理、自动化任务的好的选择。
    您可以通过以下多种方式将文件上传至桶,OBS最终将这些文件以对象的形式存储在桶中。
    表1 OBS上传对象的不同访问方式

    访问方式

    上传对象方法

    控制台

    通过控制台上传对象

    OBS Browser+

    通过OBS Browser+上传对象

    obsutil

    通过obsutil上传对象

    SDK

    使用SDK上传对象 ,具体参考各语言开发指南的上传对象章节

    API

    PUT上传POST上传

步骤2:创建队列

队列是使用DLI服务的基础,执行SQL作业前需要先创建队列。

  • DLI有预置的可用队列“default”。如果使用default队列,将按照扫描量计费。
  • 用户也可根据需要自己创建队列。使用自建队列,将按照CU时或包年包月计费。
    1. 登录DLI管理控制台。

      第一次进入数据湖探索管理控制台需要进行授权,以获取访问OBS的权限。

      至少勾选“Tenant Administrator(全局服务)”权限。

    2. 在DLI管理控制台,单击左侧导航栏中的“SQL编辑器”,可进入SQL作业“数据库”页面。
    3. 在左侧导航栏,选择队列页签,单击右侧的创建队列。
      图1 创建队列

      创建队列详细介绍请参考创建队列

      具体计费方式请参考《数据湖探索计费说明》

步骤3:创建数据库

在进行数据查询之前还需要创建一个数据库,例如db1。

“default”为内置数据库,不能创建名为“default”的数据库。

  1. 在DLI管理控制台,单击左侧导航栏中的“SQL编辑器”,可进入SQL作业“数据库”页面。
  2. 在“SQL编辑器”页面右侧的编辑窗口中,输入如下SQL语句,单击“执行”。阅读并同意隐私协议,单击“确定”。
    create database db1;

    数据库创建成功后,左侧单击“ ”刷新数据库页面,新建建的数据库db1会在“数据库”列表中出现。

    在DLI管理控制台第一次单击“执行”操作时,需要阅读隐私协议,确认同意后才能执行作业,且后续“执行”操作将不会再提示阅读隐私协议。

步骤4:创建表

数据库创建完成后,需要在数据库db1中基于OBS上的样本数据“obs://obs1/sampledata.csv”创建一个表,例如table1。

  1. “SQL编辑器”页面右侧的编辑窗口上方,选择队列“default”和数据库“db1”。
  2. 在编辑窗口中,输入如下SQL语句,单击“执行”。
    create table table1 (id int, name string) using csv options (path 'obs://obs1/sampledata.csv');

    表table1创建成功后,单击左侧“数据库”页签,再单击db1,新创建的表table1会在“表”区域下方显示。

步骤5:查询数据

完成以上步骤后,就可以开始进行数据查询了。

  1. 单击“SQL编辑器”页面左侧的“数据库”页签,选择新创建的表table1,双击表,在右侧编辑窗口中,自动输入SQL查询语句,例如查询table1表的1000条数据:
    select * from db1.table1 limit 1000;
  2. 单击“执行”,系统开始查询。

    SQL语句执行成功/失败后,可在SQL作业编辑窗口下方“查看结果”页签查看查询结果。

后续指引

完成Spark SQL作业快速入门操作后,如果您想了解更多关于Spark SQL作业相关操作,建议您参考以下指引阅读。

分类

文档

说明

界面操作

SQL编辑器

提供执行Spark SQL语句操作的界面指导,包含SQL编辑器界面基本功能介绍、快捷键以及使用技巧等说明。

Spark SQL作业管理

提供Spark SQL作业管理界面功能介绍。

Spark SQL模板管理

DLI支持定制模板或将正在使用的SQL语句保存为模板,便捷快速的执行SQL操作。

开发指导

Spark SQL语法参考

提供Spark SQL数据库、表、分区、导入及导出数据、自定义函数、内置函数等语法说明和样例指导。

使用Spark作业访问DLI元数据

提供Spark SQL作业开发的操作指引和样例代码参考。

Spark SQL 相关API

提供Spark SQL相关API的使用说明。

分享:

    相关文档

    相关产品