家电网站策划,360收录入口,开发公司安全管理组织机构图,网站团队介绍文章转载自#xff1a;http://blog.csdn.net/gongbi917/article/details/52369025 
仅用于个人学习备忘收藏#xff0c;转载请注明原文地址 进年来#xff0c;越来越多的数据科学家、分析人员、数据工程师运用Python语言进行数据分析和机器学习。Spark在0.7版本开始支持Pyth…文章转载自http://blog.csdn.net/gongbi917/article/details/52369025 
仅用于个人学习备忘收藏转载请注明原文地址 进年来越来越多的数据科学家、分析人员、数据工程师运用Python语言进行数据分析和机器学习。Spark在0.7版本开始支持Python语言(PySpark)。  相比于Scala/Java, Python语言更适合互动的探索性分析拥有内置的图形化工具以及丰富的机器学习库。Scala/Java的优势在于平台独立代码和第三方库易于打包到Jar文件更好的执行效率。当我们使用PySpark时则会失去以上优势尤其是在集群环境管理不同的Python版本和第三方库。 具体问题 
不同的数据分析人员/开发团队需要不同版本的Python版本执行PySpark。同一Python版本下需要安装多个Python库甚至需要不同版本的库。 针对问题2的一个解决办法是将Python依赖库打包成*.egg文件在运行pyspark或者spark-submit时使用–py-files加载egg文件。此解决方案的问题在于许多Python库都包含native code编译时对平台依赖并且对于一些复杂依赖的库如Pandas编译失败。  如果不使用*.egg文件则需要安装不同Python版本极其所需库在集群中的每一台机器然后在运行Spark时指定所需Python的路径。 解决方案 使用Anaconda管理多个Python环境在集群中的每一个节点  1. Anaconda 安装 https://www.continuum.io 
wget http://repo.continuum.io/archive/Anaconda3-4.1.1-Linux-x86_64.sh
bash Anaconda3-4.1.1-Linux-x86_64.sh -b -p /opt/anaconda12 此安装包默认为python3.5, 注意anaconda在每个节点的安装路径需要一致  2. 创建多个Anaconda Python环境  创建每行命令最后的参数anaconda是指定安装所有anaconda python package 
/opt/anaconda/bin/conda create -n py34 python3.4 anaconda
/opt/anaconda/bin/conda create -n py27a python2.7 anaconda12 复制anaconda环境, 并在此环境中安装python thrift package 
/opt/anaconda/bin/conda create -n py27b --clone py27a1 使用指定的Python环境运行Spark  Client Mode: PYSPARK_PYTHON  /opt/anaconda/bin/conda/py27b/python  Cluster Mode: spark.yarn.appMasterEnv.PYSPARK_PYTHON  /opt/anaconda/bin/conda/py27b/python 设置Spark默认Python环境  修改spark-env.sh 
if [ -z ${PYSPARK_PYTHON} ]; then
export PYSPARK_PYTHON/opt/anaconda3/bin/python
fi
相关文章: