pyspark 报错:TypeError: an integer is required (got type bytes)
·
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任务,报错解决。
更多推荐
所有评论(0)