确认Virtualenv是否已正确安装在EMR目录中。
在EMR集群上运行以下命令以安装Python虚拟环境:
sudo easy_install pip
sudo yum install python34-devel
sudo pip install virtualenv
执行以下命令创建一个虚拟环境:
virtualenv --python=python3.4 /home/hadoop/my_env
在EMR集群上创建一个PySpark UDF,确保将虚拟环境路径设置为PYTHONPATH:
from pyspark.sql.functions import udf from pyspark.sql.types import IntegerType
def my_udf(column1): return column1 * 2
spark.udf.register("my_udf", my_udf, IntegerType())
spark.conf.set("spark.yarn.appMasterEnv.PYTHONPATH", "/home/hadoop/my_env/bin/python")
在EMR集群上测试PySpark UDF。
df = spark.createDataFrame([(1,)], ["data"]) df.selectExpr("my_udf(data)").show()