PySpark任务提交

一般情况下,spark任务是用scala开发的,但是对于一些偏业务人员,或者是基于上手的来说python的API确实降低了开发前置条件的难度,首当其冲的就是能跳过Java和Scala需要的知识储备,但是在提交任务到集群的时候就很麻烦了,不只是spark自身pyspark提交时不同参数导致的大小写等问题,最麻烦的是spark和python版本上的兼容与否,2.x的spark一般用3.7以下的,3.x需要3.8以上的python,还有各种小毛病都是细节上的问题。

第一步:需要下载anaconda。

清华源-》https://mirrors.tuna.tsinghua.edu.cn/#

最终下载路径-》https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2022.10-Linux-x86_64.sh

下载后,在linux上运行脚本

bash 复制代码
sh Anaconda3-2022.10-Linux-x86_64.sh

第二步:将需要的环境打包成一个压缩包

创建一个python3.x的环境,{name} 自定义,后面是包含一个python3.9的包

bash 复制代码
conda create -n {name} python=3.9 --offline

激活这个环境,并安装需要的python第三方类库,比如pyspark

bash 复制代码
conda activate {name}
conda install pip --offline
pip install pyspark==3.2.1

当你安装完所有的需要库之后,把环境打包

bash 复制代码
conda env list
看到环境所在的地址

cd {环境名}

zip -r {包名}.zip {环境名}

第三步:用你的环境包去提交任务

bash 复制代码
# client 模式
$SPARK_HOME/spark-submit \
--master yarn \
--deploy-mode client \
--num-executors 2 \
--conf "spark.yarn.dist.archives=<Python包路径>/Python包名字.tgz#Python别名" \
--conf "spark.yarn.appMasterEnv.PYSPARK_PYTHON=./Python别名/bin/python" \
本地python路径比如Hello.py


# cluster 模式
$SPARK_HOME/spark-submit \
--master yarn \
--deploy-mode cluster \
--num-executors 2 \
--conf "spark.yarn.dist.archives=<Python包路径>/Python包名字.tgz#Python别名" \
--conf "spark.yarn.appMasterEnv.PYSPARK_PYTHON=./Python别名/bin/python" \
本地python路径比如Hello.py

这里要注意的是一个大坑点!!!!,spark引擎在提交pyspark任务的参数上有其他的,比如--archivesspark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON等,这些参数慎用!有兼容性问题。从使用经验上来说上面的两个就够了。


conda其他命令:

bash 复制代码
 1、创建环境:conda create --name 环境名称
          用途:用于创建一个新的Conda环境,可以指定环境的名称。

  2、激活环境:conda activate 环境名称

          用途:用于激活指定名称的Conda环境。

  3、停用环境:conda deactivate

          用途:用于停用当前激活的Conda环境。

  4、删除环境:conda remove --name 环境名称 --all

          用途:用于删除指定名称的Conda环境,--all参数表示删除环境及其所有安装的包。

  5、安装包:conda install 包名称

         用途:用于在当前环境中安装指定的包。

  6、升级包:conda update 包名称

        用途:用于更新已安装包的版本。

  7、卸载包:conda remove 包名称

         用途:用于从当前环境中卸载指定的包。

  8、查看已安装的包:conda list

        用途:用于列出当前环境中已安装的包。

  9、搜索包:conda search 包名称

          用途:用于在Conda仓库中搜索指定的包。

  10、创建环境配置文件:conda env export > environment.yaml

          用途:用于将当前环境的配置导出到一个YAML文件中,以便在其他地方进行复制或重建环境。

  11、查看配置信息:conda config --show

          显示当前的Conda配置信息,包括通用配置、环境配置和用户配置。

  12、查看某个配置项的值:conda config --show 配置项

         显示特定配置项的当前值,例如:conda config --show channels用于显示当前配置的通道列表。

  13、设置配置项的值:conda config --set 配置项=值

        例如:conda config --set channels conda-forge用于将通道设置为conda-forge。

  14、添加通道:conda config --add channels 通道名称

         向配置中添加一个新的通道,使Conda在包搜索和安装时优先考虑该通道。

  15、移除通道:conda config --remove channels 通道名称

         从配置中移除指定的通道,使Conda不再使用该通道。

  16、列出所有通道:conda config --get channels

          列出当前配置中所有配置的通道。

  17、重置配置项:conda config --remove-key 配置项

          重置指定配置项的值为默认值。

  18、编辑配置文件:conda config --edit

         打开配置文件以进行手动编辑,可以修改各种配置选项。

  19、创建具有指定版本的环境:

    conda create --name myenv python=3.10.6

  20、从环境中导出和导入环境配置

  导出环境配置
  conda env export --name myenv --file environment.yaml

  导入环境配置
  conda env create --file environment.yaml

  21、创建一个虚拟环境的克隆:
  conda create --name myclone --clone myenv`
相关推荐
weixin199701080161 分钟前
[特殊字符]️《二手ERP对接电商平台的总体方案:统一数据模型 + 事件驱动 + 灰度上线6原则》(附Python源码)
大数据·python
大大大大晴天1 小时前
从元数据到数据地图:企业数据治理的第一块地基
大数据
科创致远1 小时前
科创致远 eSOP 电子作业指导书系统落地应用指南
大数据·人工智能·汽车·制造·精益工程
人丰2 小时前
AI不是空中楼阁:制造企业智能化转型的底座建设方法论
大数据·人工智能·制造
科创致远3 小时前
成都显示模组场景观察|看板、ESOP、MES,该不该合成一块屏
大数据·人工智能·制造
智慧医养结合软件开源3 小时前
【源码交付】智慧养老系统 · Java + Vue3-系统中台
大数据·人工智能·信息可视化
llilian_164 小时前
北斗授时卡同步解决方案 gnss授时卡 计算机时间同步板卡
大数据·网络·人工智能·功能测试·51单片机
ACP广源盛139246256734 小时前
GSV5600 国产 8K Serdes 视频延长芯片,AI 超高清可视化远距离传输方案解析
大数据·人工智能·ai·硬件架构·国产芯片
Databend5 小时前
Databend 原生数据血缘:追溯指标来源,检查变更影响
大数据·数据库·sql
Raas1005 小时前
AI网关支持哪些模型?MAI Gateway(魔芋企业级AI网关)功能实测与最佳实践
大数据·人工智能·gateway·mai gateway·企业级产品