我在www.example.com中使用ambari设置了PYSPARK_PYTHON=python3spark-env.sh,当我在命令行中尝试'pyspark'时,它会在python 3.4.3中运行。但是,当我使用yarn集群模式提交作业时,它使用python 2.7.9运行。如何使用Python 3?
w51jfk4q1#
你需要给予python 3的完整路径,比如:
subprocess.call(['export PYSPARK_PYTHON=/usr/local/bin/python2.7'],shell=True)
gk7wooem2#
x1c 0d1x * 说明:* 在Python驱动程序中,SparkContext使用Py 4J启动JVM并创建JavaSparkContext。Py 4J仅用于Python和Java SparkContext对象之间的本地通信;通过不同的机制执行大数据传输。Python中的RDD转换Map到Java中的PythonRDD对象上的转换。在远程工作机器上,*PythonRDD对象启动Python子进程,并使用管道与它们通信,发送用户的代码和要处理的数据 *。
from pyspark.sql import SparkSession os.environ['PYSPARK_PYTHON'] = sys.executable os.environ['PYSPARK_DRIVER_PYTHON'] = sys.executable # Initialize Spark session spark = SparkSession.builder \ .appName("String to CSV") \ .getOrCreate()
2条答案
按热度按时间w51jfk4q1#
你需要给予python 3的完整路径,比如:
gk7wooem2#
x1c 0d1x * 说明:* 在Python驱动程序中,SparkContext使用Py 4J启动JVM并创建JavaSparkContext。Py 4J仅用于Python和Java SparkContext对象之间的本地通信;通过不同的机制执行大数据传输。
Python中的RDD转换Map到Java中的PythonRDD对象上的转换。在远程工作机器上,*PythonRDD对象启动Python子进程,并使用管道与它们通信,发送用户的代码和要处理的数据 *。