我的lambda函数(python 3.6)有问题,lambda函数使用pyspark(spark-2.3.0-bin-hadoop2.7二进制文件) .
由于pyspark二进制文件非常大(226 MB zip文件),我将zip文件上传到S3存储桶中 . lambda函数将文件解压缩到/ tmp文件夹中 . 解压缩pyspark后,会对文件夹和文件赋予权限:
for root, dirs, filenames in os.walk(/tmp/spark):
for d in dirs:
os.chmod(os.path.join(root, d), 0o775)
for f in filenames:
os.chmod(os.path.join(root, f), 0o775)
在lambda函数上,SPARK_HOME环境变量已设置为值/ tmp / spark
也:
sys.path.append('/tmp/spark/python')
sys.path.append('/tmp/spark/python/lib/py4j-0.10.6-src.zip')
from pyspark import SparkContext
from pyspark import SparkConf
from pyspark.sql import SQLContext
from pyspark.sql import SparkSession
from pyspark.sql.types import *
...
...
sc = SparkContext(appName="ProjectCSV")
sqlContext = SQLContext(sc)
...
...
一旦SparkContext(appName =“ProjectCSV”)执行,它就会报告以下错误:
Java gateway process exited before sending the driver its port number
PYSPARK_SUBMIT_ARGS环境变量已添加如下:
os.environ['PYSPARK_SUBMIT_ARGS'] = "--master local[2] pyspark-shell"
仍然报告相同的错误 .
任何想法或建议,可能是什么问题,我怎么能解决这个问题?
1 回答
尝试检查环境中是否设置了JAVA_HOME . 如果没有java可能没有安装 .