tencent cloud

数据湖计算

产品动态
产品简介
产品概述
产品优势
应用场景
购买指南
计费概述
退费说明
欠费说明
调整配置费用说明
快速入门
新用户开通全流程
DLC 数据导入指引
一分钟入门 DLC 数据分析
一分钟入门 DLC 权限管理
一分钟入门分区表
开启数据优化
跨源分析 EMR Hive 数据
标准引擎配置指引
配置数据访问策略
操作指南
控制台操作介绍
开发指南
运行环境
SparkJar 作业开发指南
PySpark 作业开发指南
查询性能优化指南
UDF 函数开发指南
系统约束
客户端访问
JDBC 访问
TDLC 命令行工具访问
第三方软件联动
Python 访问
实践教程
通过 Power BI 访问 DLC 数据操作指南
建表实践
使用 Apache Airflow 调度 DLC 引擎提交任务
StarRocks 直接查询 DLC 内部存储
Spark 计算成本优化实践
DATA + AI
使用 DLC 分析 CLS 日志
使用角色 SSO 访问 DLC
资源级鉴权指南
在 DLC 中实现 TCHouse-D 读写操作
DLC 原生表
SQL 语法
SuperSQL 语法
标准 Spark 语法概览
标准 Presto 语法概览
保留字
API 文档
History
Introduction
API Category
Making API Requests
Data Table APIs
Task APIs
Metadata APIs
Service Configuration APIs
Permission Management APIs
Database APIs
Data Source Connection APIs
Data Optimization APIs
Data Engine APIs
Resource Group for the Standard Engine APIs
Data Types
Error Codes
通用类参考
错误码
配额与限制
第三方软件连接DLC操作指南
常见问题
权限类常见问题
引擎类常见问题
功能类常见问题
Spark 作业类常见问题
DLC 政策
隐私协议
数据处理和安全协议
服务等级协议
联系我们
文档数据湖计算开发指南PySpark 作业开发指南

PySpark 作业开发指南

PDF
聚焦模式
字号
最后更新时间: 2025-03-07 15:52:30

应用场景

DLC 支持 Python 语言编写的程序运行作业 。本示例演示通过编写 Python 代码在 对象存储(COS)上读写数据和在 DLC 上建库表、读写表的详细操作,帮助用户在 DLC 上完成作业开发。

环境准备

依赖:PyCharm 或其他 Python 编程开发工具。

开发流程

开发流程图

DLC Spark JAR 作业开发流程图如下:


创建资源

第一次在 DLC 上运行作业,需新建 Spark 作业计算资源,例如新建名称为 "dlc-demo" 的 Spark 作业资源。
1. 登录 数据湖计算 DLC 控制台,选择服务所在区域,在导航菜单中单击数据引擎。
2. 单击左上角创建资源,进入资源配置购买页面。
3. 集群配置 > 计算引擎类型选项选择 Spark 作业引擎。

信息配置 > 资源名称填写 “dlc-demo”。新建资源详细介绍请参见购买独享数据引擎

4. 单击立即开通,确认资源配置信息。
5. 确认信息无误后,单击提交,完成资源配置。

上传数据到 COS

创建名称为 “dlc-demo”的存储桶,上传people.json文件,供 从COS 读写数据示例用,people.json 文件的内容如下:
{"name":"Michael"}
{"name":"Andy", "age":30}
{"name":"Justin", "age":3}
{"name":"WangHua", "age":19}
{"name":"ZhangSan", "age":10}
{"name":"LiSi", "age":33}
{"name":"ZhaoWu", "age":37}
{"name":"MengXiao", "age":68}
{"name":"KaiDa", "age":89}
1. 登录 对象存储 COS 控制台,在左侧菜单导航中单击 存储桶列表。
2. 创建存储桶:
单击左上角 创建存储桶,名称项填写 “dlc-dmo”,单击下一步完成配置。
3. 上传文件:
单击文件列表 > 上传文件,选择本地“people.json”文件上传到“dlc-demo-1305424723”桶里(-1305424723是建桶时平台生成的随机串),单击上传,完成文件上传。新建存储桶详情请参见 创建存储桶


新建 Python 项目

通过 PyCharm 新建一个名称为“demo”的 项目。

编写代码

1. 新建 cos.py 文件,编写代码,功能为从 COS 上读写数据和在 DLC 上建库、建表、查询数据和写入数据。
import sys
from pyspark.sql import SparkSession
from pyspark.sql import Row

if __name__ == "__main__":
spark = SparkSession\\
.builder\\
.appName("Operate data on cos")\\
.getOrCreate()

# 1.读cos上的数据 支持多种类型的文件 如 json,csv,parquet,orc,text
read_path = "cosn://dlc-demo-1305424723/people.json"
peopleDF = spark.read.json(read_path)
# 2.对数据做操作
peopleDF.createOrReplaceTempView("people")
data_src = spark.sql("SELECT * FROM people WHERE age BETWEEN 13 AND 19")
data_src.show()
# 3.写数据
write_path = "cosn://dlc-demo-1305424723/people_output"
data_src.write.csv(path=write_path, header=True, sep=",", mode='overwrite')

spark.stop()
2. 新建 db.py 文件,编写代码,功能为 DLC 上建库、建表、查询数据和写入数据。
from os.path import abspath

from pyspark.sql import SparkSession



if __name__ == "__main__":

spark = SparkSession \\
.builder \\
.appName("Operate DB Example") \\
.getOrCreate()
# 1.建数据库
spark.sql("CREATE DATABASE IF NOT EXISTS `DataLakeCatalog`.`dlc_db_test_py` COMMENT 'demo test' ")
# 2.建内表
spark.sql("CREATE TABLE IF NOT EXISTS `DataLakeCatalog`.`dlc_db_test_py`.`test`(`id` int,`name` string,`age` int) ")
# 3.写内数据
spark.sql("INSERT INTO `DataLakeCatalog`.`dlc_db_test_py`.`test` VALUES (1,'Andy',12),(2,'Justin',3) ")
# 4.查内数据
spark.sql("SELECT * FROM `DataLakeCatalog`.`dlc_db_test_py`.`test` ").show()
# 5.建外表
spark.sql("CREATE EXTERNAL TABLE IF NOT EXISTS `DataLakeCatalog`.`dlc_db_test_py`.`ext_test`(`id` int, `name` string, `age` int) ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' STORED AS TEXTFILE LOCATION 'cosn://cry-1305424723/ext_test' ")
# 6.写外数据
spark.sql("INSERT INTO `DataLakeCatalog`.`dlc_db_test_py`.`ext_test` VALUES (1,'Andy',12),(2,'Justin',3) ")
# 7.查外数据
spark.sql("SELECT * FROM `DataLakeCatalog`.`dlc_db_test_py`.`ext_test` ").show()
spark.stop()
建外表时,可按照 上传数据到 COS 的步骤 先在桶里建对应表名文件夹保存表文件。


调式

PyCharm 调式无语法错误。

上传 py 文件到 COS

登录 COS 控制台,参考上文上传数据到 COS 的步骤将 cos.py、db.py上传到 COS。

新建 Spark Jar 数据作业

创建数据作业前,您需先完成数据访问策略配置,保证数据作业能安全地访问到数据。配置数据访问策略详情请参见 配置数据访问策略。如已配置数据策略名称为:qcs::cam::uin/100018379117:roleName/dlc-demo
1. 登录 数据湖计算 DLC 控制台,选择服务所在区域,在导航菜单中单击数据作业。
2. 单击左上角创建作业按钮,进入创建页面。
3. 在作业配置页面,配置作业运行参数,具体说明如下:
配置参数
说明
作业名称
自定义 Spark 作业名称,例如:cosn_py
作业类型
选择 批处理类型
数据引擎
选择 创建资源 步骤创建的 dlc-demo 计算引擎
程序包
选择 COS,在 上传 py 文件到 COS 步骤的上传 py 文件:
从 COS 上读写数据就选择: cosn://dlc-demo-1305424723/cos.py
在 DLC 上建库、建表等选择:cosn://dlc-demo-1305424723/db.py
数据访问策略
选择该步骤前创建的策略 qcs::cam::uin/100018379117:roleName/dlc-demo
其他参数值保持默认。

4. 单击保存,在 Spark 作业页面可以看到创建的作业。

运行并查看作业结果

1. 运行作业:在Spark 作业页面,找到新建的作业,单击运行,即可运行作业。
2. 查看作业运行结果:可查看作业运行日志和运行结果。

查看作业运行日志

1. 单击作业名称 > 历史任务 查看任务运行状态:

2. 单击任务ID > 运行日志,查看作业运行日志。


查看作业运行结果

1. 运行从 COS 读写数据示例,则到 COS 控制台查看数据写入结果。

2. 运行在 DLC 上建表、建库,则到 DLC 数据探索页面查看建库、建表。



帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈