pyspark适配gaussdb验证任务心得

举报
liuzhiquan 发表于 2024/11/25 16:00:29 2024/11/25
【摘要】 在现代信息时代,数据是最宝贵的财富之一,如何处理和分析这些数据成为了关键。Python在数据处理方面表现得尤为突出。而pyspark作为一个强大的分布式计算框架,为大数据处理提供了一种高效的解决方案。本文将详细介绍pyspark的基本概念和使用方法,并给出实际案例。

背景介绍

开源for Huawei(参考:https://developer.huaweicloud.com/programs/opensource/contributing/)  通过和公司、高校、社区的开发者合作,完成鲲鹏、昇腾、欧拉、鸿蒙、高斯、云服务等与开源软件的适配开发,帮助繁荣Huawei的基础生态,同时让开源软件能够更加简单、高效的运行于华为云上。

开始之前,开发者可以下载 开源for Huawei Wiki(参考:https://gitcode.com/HuaweiCloudDeveloper/OpenSourceForHuaweiWiki/overview 了解详细的开发步骤,技术准备,以及开发过程需要的各种资源。

适配思路

  1. 使用本地环境python开发 测试是否能连通  (本次适配 采用华为云官方文档中的驱动 使用gsjdbc4.jar 与PostgreSQL保持兼容,其中类名、类结构与PostgreSQL驱动完全一致 可参考云文档  下载JDBC或ODBC驱动_数据仓库服务 GaussDB(DWS)_华为云 (huaweicloud.com));

     2.开发好的python程序部署到 鲲鹏EulerOS环境的ECS连接云数据库GaussDB,测试是否连通。

适配准备

准备一台弹性云服务器ECS,用于鲲鹏EulerOS环境适配GaussDB测试 以及用于测试使用的Gaussdb实例。

2.1 ECS配置

鲲鹏:

产品名称

CPU架构

实例类型

公共镜像

镜像版本

弹性云服务器

鲲鹏计算

鲲鹏通用计算增强型

Huawei Cloud EulerOS

Huawei Cloud EulerOS 2.0标准版 64ARM(10GiB)

GaussDB:

产品名称

产品类型

数据库引擎版本

内核引擎版本

实例类型

部署形态

云数据库GaussDB

基础版

V2.0-8.*

505.1.*

集中式

12

3 Demo开发

  1. 安装依赖(需要安装python环境,最好是8或者3.9版本)pip install pyspark  (安装pyspark之前 需配置jdk环境变量 否则无法使用pyspark
  2. 创建一个公共的spark_utils.py 脚本 用来加载驱动文件和创建sparksession 不需要每个脚本中都去创建
  3. 创建一个读取gaussdb数据的脚本 读取gaussdb中的数据 并且用pyspark的方法展示出来
  4. 创建一个读取mysql数据的脚本 并且读取mysql数据之后 写入到gaussdb数据库
  5. demo部署ecs运行成功之后 会在 上个适配任务 dolphinscheduler 中 运行(3)(4)的python脚本  实现数据任务编排 

4 适配过程中的问题

    • 安装pyspark库之后 无法使用

             解决方法:检查jdk环境是否配置

    • 内存问题

             执行复杂、大数据量操作时易出现,像处理海量数据聚合等情况,会提示内存耗尽错误。解决办法是增加 Spark 执行器内存,提交任务时用 “--executor-memory” 参数设置,也可优化代码逻辑,合理控制数据缓存。

    • python版本与pyspark版本兼容问题

             有的 PySpark 版本对 Python 的高版本支持不太好,在使用较新的 Python 版本运行 PySpark 脚本时,可能会出现一些函数无法正常调用、模块找不到等错误提示,影响代码正常执行(需要安装python环境,最好是8或者3.9版本)

    【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
    • 点赞
    • 收藏
    • 关注作者

    评论(0

    0/1000
    抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。