当前位置: 首页 > 知识库问答 >
问题:

在AWS lambda函数上使用pyspark二进制文件时,错误Java网关进程在向驱动程序发送端口号之前退出

徐飞龙
2023-03-14

我的lambda函数(python 3.6)有问题,lambda函数使用pyspark(Spark-2.3.0-bin-Hadoop2.7二进制文件)。

由于pyspark二进制文件相当大(226 MB压缩文件),我将压缩文件上传到了一个S3 bucket中。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)
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)
...
...
Java gateway process exited before sending the driver its port number
os.environ['PYSPARK_SUBMIT_ARGS'] = "--master local[2] pyspark-shell"

仍然报告相同的错误。

任何想法或建议,可能是什么问题,我如何解决这个问题?

共有1个答案

毕浩渺
2023-03-14

尝试检查环境中是否设置了JAVA_HOME。如果没有,java可能还没有安装

 类似资料:
  • 这是回溯 我将PyDev与Eclipse Eclipse Neon.2发行版(4.6.2)一起使用。配置如下:Libraries环境 注意:我使用的是最新的Spark版本:spark-2.1.0-bin-hadoop2.7

  • 我在Spark 3.1.2和Hadoop 2.7中面临两个错误: 第一个是在python中导入'pyspark'并创建一个会话。 错误:'Java网关进程在发送端口号前已退出‘ 我从GitHub上的存储库中为以下Hadoop版本下载了它们:[2.7.1,2.7.7] 试过了,都不起作用。 我的环境变量--就我所检查的而言--是正确的: Windows 10 Python:3.7.10 水蟒:4.1

  • 我正在使用Pyspark运行一些命令在Jupyter笔记本,但它是抛出错误。我尝试了这个链接中提供的解决方案(pyspark:exception:Java gateway process在发送驱动程序端口号之前退出),并且尝试了这里提供的解决方案(比如将路径更改为c:Java、卸载Java SDK 10和重新安装Java8,但它仍然给我带来了同样的错误。 我试着卸载和重新安装pyspark,我试着

  • 为什么我的浏览器屏幕上会出现这个错误, 有什么办法可以修好它吗?

  • 我在python环境中使用了pip安装pyspark,安装了java,但是当我尝试初始化spark会话时,我得到了一个java错误,java网关进程在发送端口号之前退出 运行时错误发布在上面,我在其他帖子中没有看到这种类型的错误

  • 我运行Windows10,并通过Anaconda3安装了Python3。我在用Jupyter笔记本。我从这里安装了Spark(Spark-2.3.0-bin-Hadoop2.7.tgz)。我已经解压缩了这些文件,并将它们粘贴到我的目录d:\spark中。我已经修改了环境变量: 用户变量: 变量:SPARK_HOME 值:D:\spark\bin 我已经通过conda安装/更新了以下模块: 熊猫 皮