GraphFrames NoSuchMethodError in Connected Components call when running Zingg execute method
Having gotten past the id-id error, the following error occurs, apparently in GraphFrames being called by Zingg to find Connected Components, which is probably used to diffuse cluster IDs to all members.
Py4JJavaError: An error occurred while calling o504.execute.
: java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)Lscala/collection/mutable/ArrayOps;
at org.graphframes.lib.ConnectedComponents$.org$graphframes$lib$ConnectedComponents$$run(ConnectedComponents.scala:277)
at org.graphframes.lib.ConnectedComponents.run(ConnectedComponents.scala:154)
at zingg.spark.core.util.SparkGraphUtil.buildGraph(SparkGraphUtil.java:39)
at zingg.common.core.executor.Matcher.getOutput(Matcher.java:175)
at zingg.common.core.executor.Matcher.writeOutput(Matcher.java:151)
at zingg.common.core.executor.Matcher.execute(Matcher.java:131)
at zingg.common.client.Client.execute(Client.java:251)
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:397)
at py4j.Gateway.invoke(Gateway.java:306)
at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
at py4j.commands.CallCommand.execute(CallCommand.java:79)
at py4j.ClientServerConnection.waitForCommands(ClientServerConnection.java:199)
at py4j.ClientServerConnection.run(ClientServerConnection.java:119)
at java.lang.Thread.run(Thread.java:750)
File <command-226341090012288>, line 59
57 # rc = zingg.initAndExecute()
58 rc = zingg.init()
---> 59 rc = zingg.execute()
60 print(f" Zingg RC: '{rc}' at {time.ctime()}\n")
62 print(f" Read '{model_details.output_pipe_loc}' at {time.ctime()}")
File /local_disk0/.ephemeral_nfs/envs/pythonEnv-5cb7aa47-7ba1-4740-9620-b9801060f1c8/lib/python3.11/site-packages/zingg/client.py:128, in Zingg.execute(self)
126 def execute(self):
127 """ Method to execute this class object """
--> 128 self.client.execute()
File /databricks/spark/python/lib/py4j-0.10.9.7-src.zip/py4j/java_gateway.py:1355, in JavaMember.__call__(self, *args)
1349 command = proto.CALL_COMMAND_NAME +\
1350 self.command_header +\
1351 args_command +\
1352 proto.END_COMMAND_PART
1354 answer = self.gateway_client.send_command(command)
-> 1355 return_value = get_return_value(
1356 answer, self.gateway_client, self.target_id, self.name)
1358 for temp_arg in temp_args:
1359 if hasattr(temp_arg, "_detach"):
File /databricks/spark/python/pyspark/errors/exceptions/captured.py:255, in capture_sql_exception.<locals>.deco(*a, **kw)
252 from py4j.protocol import Py4JJavaError
254 try:
--> 255 return f(*a, **kw)
256 except Py4JJavaError as e:
257 converted = convert_exception(e.java_exception)
File /databricks/spark/python/lib/py4j-0.10.9.7-src.zip/py4j/protocol.py:326, in get_return_value(answer, gateway_client, target_id, name)
324 value = OUTPUT_CONVERTER[type](answer[2:], gateway_client)
325 if answer[1] == REFERENCE_TYPE:
--> 326 raise Py4JJavaError(
327 "An error occurred while calling {0}{1}{2}.\n".
328 format(target_id, ".", name), value)
329 else:
330 raise Py4JError(
331 "An error occurred while calling {0}{1}{2}. Trace:\n{3}\n".
332 format(target_id, ".", name, value))