首页 > 解决方案 > Spark:没有名为“编码”的模块

问题描述

test.py按如下方式提交给纱线。

spark-submit --master yarn \
--deploy-mode cluster \
--executor-memory 8g \
--driver-memory 10g \
--num-executors 100 \
--executor-cores 10 \
--conf spark.yarn.dist.archives=/home/ml_env/ml_env.zip#pyenv \
--conf spark.pyspark.python=./pyenv/bin/python3 \
test.py

在这里,我想导入一些python包,比如numpy,configparser包,所以我建立了一个名为ml_env.

ml_env环境中,我首先使用virtualenv ml_env, 和source activate,然后我 pip installnumpyconfigparseron ml_env

test.py的如下所示。

from pyspark import SparkContext
sc = SparkContext.getOrCreate()

import configparser
import numpy

if __name__ == "__main__":
    data = [1, 2, 3, 4, 5]
    distData = sc.parallelize(data)
    print("done",distData.collect())

但我遇到一个错误:

Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: initfsencoding: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'

标签: pythonapache-sparkpyspark

解决方案


推荐阅读