TypeError: an integer is required (got type bytes)

出现以上情况,要定位你所用的spark和python的版本,很多教程都是说要改python版本(因为很多人用的是spark2.4+系统环境是python3.8所以导致的bug),因此在配置中添加如下信息:

spark_conf = {
                ...,
                # 添加指定driver和executor的python路径
                "spark.driver.extraPythonPath": "/你的/Python36/路径",
                "spark.executor.extraPythonPath": "/你的/Python36/路径"             
                }

spark = SparkSession \
    .builder \
    .enableHiveSupport \
    .config(conf=spark_conf) \
    .getOrCreate()

但是运行后问题仍然存在。

考虑到这个问题肯定是和spark版本与python的版本不兼容而造成的,但是因为我当前用的环境是一个从别的服务器里打包的环境,里面的pyspark指向的spark版本不一定是我当前环境里的spark。

因此需要在你的环境里增加以下环境变量,指定spark的安装路径:

# vim /etc/profile
# 在里面添加spark环境变量,注意每个人spark的安装路径不一样,通常是在/opt里面
export SPARK_HOME=/opt/spark-2.4.0-bin-hadoop2.7
export $PATH=$SPARK_HOME/bin

保存以上配置后,执行以下命令:

source /etc/profile

重新在pycharm中启动spark任务,报错解决。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐