应用场景
开发流程
TCHouse-X Spark Python 作业开发流程如下:
一、创建实例
首次在 TCHouse-X 上运行作业,需要先创建实例,在实例工作空间下运行 Spark 任务。实例创建流程请参见 实例创建与销毁。
二、上传数据到 COS
1. 创建存储桶:请参见 创建存储桶。
2. 上传文件:
单击文件列表 > 上传文件,选择已下载的本地 student.json 文件上传到所创建桶里,单击上传,完成文件上传。
三、构建虚拟环境&安装依赖
mkdir spark-dev && cd spark-devpython3 -m venv venvsource venv/bin/activatepip install "pyspark[sql]==3.5.3"
四、导入 Python 项目
打开 PyCharm > File > Open,选择 spark-dev 目录。
五、编写代码
1. 新建 cosio.py 文件,编写代码,功能为从 COS 上读写数据。
from pyspark.sql import SparkSessionif __name__ == '__main__': spark = SparkSession \\ .builder \\ .appName("io test") \\ .getOrCreate() # 1.读cos上的数据 read_path = "cosn://your_cos_bucket_name/student.json" student_df = spark.read.json(read_path) # 2.对数据做操作 student_df.createOrReplaceTempView("student") data_df = spark.sql("SELECT * FROM student limit 10") data_df.show() # 3.写数据 write_path = "cosn://your_cos_bucket_name/student_out" data_df.write.parquet(path=write_path) spark.stop()
2. 新建 sql_test.py 文件,编写代码,功能为在 TCHouse-X 上建库、建表、查询数据和写入数据。
from pyspark.sql import SparkSessionif __name__ == '__main__': spark = SparkSession \\ .builder \\ .appName("sql test") \\ .enableHiveSupport() \\ .getOrCreate() # 1.建数据库 spark.sql("CREATE DATABASE IF NOT EXISTS test_db COMMENT 'test db'") # 2.建内表 spark.sql("CREATE TABLE test_db.student (id INT, name STRING, age INT) USING TCI") # 3.写内数据 spark.sql("INSERT INTO test_db.student VALUES (1,'Andy',12),(2,'Justin',3) ") # 4.查内数据 spark.sql("SELECT * FROM test_db.student LIMIT 10").show() # 5.建外表 spark.sql("CREATE EXTERNAL TABLE test_db.ex_student (id INT, name STRING, age INT) USING PARQUET LOCATION 'cosn://your_cos_bucket_name/external_data'") # 6.写外数据 spark.sql("INSERT INTO test_db.ex_student VALUES (1,'Andy',12),(2,'Justin',3) ") # 7.查外数据 spark.sql("SELECT * FROM test_db.ex_student").show() spark.stop()
注意:请将代码中的文件读取地址更改为你存储文件的 COS 地址。
六、调试
本地 PyCharm 调试无语法错误。
七、新建数据作业
1. 登录 TCHouse-X 控制台,进入实例,单击左侧菜单数据作业 > 作业列表进入数据作业管理页。
2. 单击新建作业,进入创建页。
3. 在作业配置页面,配置作业运行参数,具体说明如下:
| 配置参数 | 说明 |
| 作业名称 | 自定义 Pyspark 作业名称,例如:demopy |
| 程序包 | 上传 py 文件到 COS 或者使用本地上传 |
| 资源配置 | 配置作业运行所需要的资源,计量单位为 CU,1CU=1核CPU+4GB 内存Executor 资源Executor 个数Driver 资源 |
其他参数值保持默认。
4. 单击创建并启动或者仅创建,在作业列表页面可以看到创建的作业。
八、运行并查看作业结果
1. 运行作业:在作业列表页面,找到新建的作业,单击启动,即可运行作业。
2. 作业列表页面对应作业子列表或者作业运行记录页可以查看作业详情。
3. 查看作业运行结果:
3.1 查看作业运行日志:单击任务的查看详情,进入运行日志页面查看日志。
3.2 运行从 COS 读写数据示例,则到 COS 控制台查看数据写入结果。
3.3 运行在 TCHouse-X 上建表、建库,则到 TCHouse-X 的 SQL 工作区页面查看建库、建表。