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

Py4JJavaError:调用o65时出错。createGraph

阎单鹗
2023-03-14

我想按照spark网站上的说明为spark安装graphframes,但命令:

<代码>pyspark--打包graphframes:graphframes:0.8.1-spark3.0-s\u 2.12

不适合我。

我尝试了多种安装方法,但决定继续下载graphframes。jar,将其添加到Spark的常规列表中。jar文件并将其手动添加到代码spark中。sparkContext。addPyFile(“指向/spark-2.4.7-bin-hadoop2.7/jars/graphframes-0.8.1-spark3.0-s\u 2.12.jar的路径”)。之后,将导入库,但创建GraphFrame时总是会出错。我只是不知道如何解决它。

我的<代码>。bashrc变量:
导出CLASSPATH=“/home/german/spark-2.4.7-bin-hadoop2.7/jars”
导出HADOOP\u CONF\u DIR=“/home/german/spark-2.4.7-bin-hadoop2.7/CONF”
导出HADOOP\u安全日志=错误,控制台
导出JAVA_HOME=“/HOME/german/jdk1.8.0_301”
导出SPARK_CLASSPATH=“/HOME/german/SPARK-2.4.7-bin-hadoop2.7/jars”
导出SPARK_DIST_CLASSPATH=“/HOME/german/SPARK-2.4.7-bin-hadoop2.7/jars”
导出SPARK_HOME=“/HOME/german/SPARK-2.4.7-bin-hadoop2.7”
导出路径=“/HOME/german/SPARK-2.4.7-bin-hadoop2.7:$Pythoop2.7”
=“/home/german/spark-2.4.7-bin-hadoop2.7/python/lib/pyspark.zip:/home/german/spark-2.4.7-bin-hadoop2.7/python/lib:/home/german/spark-2.4.7-bin-hadoop2.7/python:$pythonnpath”

我的jdk版本1.8,python 3.7.10,操作系统:Ubuntu 20.04 LTS。

from pyspark.sql import SparkSession
    
spark = SparkSession.builder\
                    .config("spark.sql.warehouse.dir", "spark_warehouse")\
                    .getOrCreate()
spark.sparkContext.setCheckpointDir("graphframes_checkpoints")
spark.sparkContext.addPyFile("path to /spark-2.4.7-bin-hadoop2.7/jars/graphframes-0.8.1-spark3.0-s_2.12.jar")

vertices = spark.read.parquet("tmp_dfs/parquet/vertices.parquet")

edges = spark.read.parquet("tmp_dfs/parquet/edges.parquet")

from graphframes import *
graph = GraphFrame(vertices, edges)

我得到一个错误:

Py4JJavaError: An error occurred while calling o65.createGraph.
: java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)[Ljava/lang/Object;
    at org.graphframes.GraphFrame$.apply(GraphFrame.scala:676)
    at org.graphframes.GraphFramePythonAPI.createGraph(GraphFramePythonAPI.scala:10)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
    at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
    at py4j.Gateway.invoke(Gateway.java:282)
    at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
    at py4j.commands.CallCommand.execute(CallCommand.java:79)
    at py4j.GatewayConnection.run(GatewayConnection.java:238)
    at java.lang.Thread.run(Thread.java:748)
---------------------------------------------------------------------------
Py4JJavaError                             Traceback (most recent call last)
<ipython-input-2-ee0c1444db6f> in <module>
     37 
     38 from graphframes import *
---> 39 graph = GraphFrame(vertices, edges)

/tmp/spark-9d209109-e503-4ea1-813c-9ca68e76d72a/userFiles-4417833f-c19c-4e6e-9eea-7a21b6553f5f/graphframes-0.8.1-spark3.0-s_2.12.jar/graphframes/graphframe.py in __init__(self, v, e)
     87                 .format(self.DST, ",".join(e.columns)))
     88 
---> 89         self._jvm_graph = self._jvm_gf_api.createGraph(v._jdf, e._jdf)
     90 
     91     @property

~/spark-2.4.7-bin-hadoop2.7/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py in __call__(self, *args)
   1255         answer = self.gateway_client.send_command(command)
   1256         return_value = get_return_value(
-> 1257             answer, self.gateway_client, self.target_id, self.name)
   1258 
   1259         for temp_arg in temp_args:

~/spark-2.4.7-bin-hadoop2.7/python/lib/pyspark.zip/pyspark/sql/utils.py in deco(*a, **kw)
     61     def deco(*a, **kw):
     62         try:
---> 63             return f(*a, **kw)
     64         except py4j.protocol.Py4JJavaError as e:
     65             s = e.java_exception.toString()

~/spark-2.4.7-bin-hadoop2.7/python/lib/py4j-0.10.7-src.zip/py4j/protocol.py in get_return_value(answer, gateway_client, target_id, name)
    326                 raise Py4JJavaError(
    327                     "An error occurred while calling {0}{1}{2}.\n".
--> 328                     format(target_id, ".", name), value)
    329             else:
    330                 raise Py4JError(

Py4JJavaError: An error occurred while calling o65.createGraph.
: java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)[Ljava/lang/Object;
    at org.graphframes.GraphFrame$.apply(GraphFrame.scala:676)
    at org.graphframes.GraphFramePythonAPI.createGraph(GraphFramePythonAPI.scala:10)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:244)
    at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
    at py4j.Gateway.invoke(Gateway.java:282)
    at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
    at py4j.commands.CallCommand.execute(CallCommand.java:79)
    at py4j.GatewayConnection.run(GatewayConnection.java:238)
    at java.lang.Thread.run(Thread.java:748)

我可能选择了错误的安装方法或其他方法。我很高兴听到关于如何解决这个问题的任何建议。

共有1个答案

卫焕
2023-03-14

检查$SPARK_HOME/jars文件夹下的scala版本火花罐,例如火花-sql_

还有一件事,你使用的火花版本是2.4.7,但是你添加的图形框架jar与火花3.0相关,这也可能会导致问题。

 类似资料:
  • 我是PySpark的新手。我一直在用测试样本编写代码。一旦我在更大的文件上运行代码(3gb压缩)。我的代码只做了一些过滤和连接。关于py4J,我一直在出错。 任何帮助都是有益的,我们将不胜感激。 回来 更新:我使用的是py4j 10.7,刚刚更新到10.8 更新(1):添加spark。驾驶员内存: 汇总返回错误: 更新(2):我通过更改spark默认值尝试了这一点。conf文件。仍在获取错误PyS

  • 我在运行Python 3.6.5的Jupyter笔记本和运行3.7.2的Python shell中出现了这个错误。我的操作系统是Windows10。我在这两种环境中都安装了pip pyspark。两者都使用Spark Version2.4.0,而我的Java JDK是Oracle JDK Version8,JDK1.8.0_201。这是我在这两种情况下运行的代码: 这里:Spyder中的PySpa

  • 我是一个学生,我真的被Py4JJavaError这个问题卡住了两个星期,在互联网上没有太多;我真的需要帮助: 请帮帮我这是下周要做的项目

  • 我试图使用Spark,更具体地说是PySpark和结构化流来消费Kafka。 PY4JJavaError:调用O70时出错。AwaitTermination

  • 我有一个我不能的数据帧。显示()。每次都会出现以下错误?是否可能存在损坏的列? 错误: Py4JJavaError:调用o426.showString时出错。:org.apache.spark.SparkException:作业由于阶段失败而中止:阶段381.0中的任务0失败4次,最近一次失败:阶段381.0中丢失任务0.3(TID 19204,ddlps28.rsc.dwo.com,执行器99)

  • 这是在jupyter笔记本上运行的pyspark代码。 Py4JJavaError:调用None时出错。组织。阿帕奇。火花应用程序编程接口。JAVAJavaSparkContext.:JAVAlang.IllegalAccessError:课堂组织。阿帕奇。火花存储StorageUtils$(在未命名模块@0x30cb5b99中)无法访问sun类。尼奥。DirectBuffer(在模块java.b