• pyspark安装python3 (不推荐)


    python对应的版本兼容性是个头疼的问题,因此后续再使用pyarrow包的过程中安装出现了不兼容的问题。

    所以后续改为使用anaconda3中是适用conda创建虚拟环境来解决这个问题。

    参考另外一篇。

    1. 下载python3地址:https://www.python.org/ftp/python/3.5.9/Python-3.5.9.tgz

    注意:由于spark是2.4.8版本,python3版本只能使用3.5版本,太高版本可能会不兼容
    我用3.9版本测试有问题。

    解压缩后需要编译安装,指定安装路径到python3目录下:

    tar -zxvf Python-3.5.9.tgz
    cd Python-3.5.9
    ./configure -prefix=/home/hadoop/bigdata/python3/
    make && make install

    2. 添加软连接

    sudo ln -s /home/hadoop/bigdata/python3/bin/python3 /usr/bin/python3

    注意:必须添加软连接,即使在path中配置环境变量也不行

    3. 分发python包

    scp -r python3 hadoop@cdh192-50:/home/hadoop/bigdata/

    4. 在自己本机上通过ansible在每台机器上执行以下命令来添加软连接(不行就手工一个个敲)

    准备好hosts文件,执行以下命令:(存在部分机器成功,部分机器报错的情况)

    ansible root -m file -a "src=/home/hadoop/bigdata/python3/bin/python3 dest=/usr/bin/python3 state=link"

    不行的,就手工进去执行:

    ln -s /home/hadoop/bigdata/python3/bin/python3 /usr/bin/python3

    5. 修改spark的环境变量spark-env.sh,添加以下配置:

    export PYSPARK_PYTHON=/home/hadoop/bigdata/python3/bin/python3

    6. 启动pyspark:

    7. 准备测试案例(python执行脚本)

    """SimpleApp.py"""
    from pyspark.sql import SparkSession
    
    logFile = "/tmp/logs/LICENSE"
    
    # Should be some file on your system
    spark = SparkSession.builder.appName("SimpleApp").getOrCreate()
    logData = spark.read.text(logFile).cache()
    
    numAs = logData.filter(logData.value.contains('a')).count()
    numBs = logData.filter(logData.value.contains('b')).count()
    
    print("Lines with a: %i, lines with b: %i" % (numAs, numBs))
    
    spark.stop()

    上传需要的文件LICENSE到hdfs上的/tmp/logs/文件夹中。

    8. 提交spark任务到yarn上

    spark-submit --master yarn --deploy-mode client --queue prod SimpleApp.py

    执行显示:

  • 相关阅读:
    CF938E Max History
    经典论文系列 | 目标检测--CornerNet & 又名 anchor boxes的缺陷
    在 Intenseye,为什么我们选择 Linkerd2 作为 Service Mesh 工具(Part.2)
    在 Intenseye,为什么我们选择 Linkerd2 作为 Service Mesh 工具(Part.1)
    Java概述
    算法 --- 二分法 冒泡排序 递归 快速排序
    二维数组
    数组
    SNMP "Simple Network Management Protocol" "简单网络管理协议"。
    常用api --- BigDecimal 包装类 Integer Arrays
  • 原文地址:https://www.cnblogs.com/30go/p/16014299.html
Copyright © 2020-2023  润新知