Error running label matching code block in Databricks product-er-with-images accelerator: java.lang.NoSuchMethodError
I am running the product-er-with-images soution accelerator for databricks and facing the issue when running the "02_Initial_Workflow_Part_A" notebook exactly at the label matching code block Py4JJavaError: An error occurred while calling o497.execute. : java.lang.NoSuchMethodError: org.apache.spark.sql.catalyst.encoders.RowEncoder.apply(Lorg/apache/spark/sql/types/StructType;)Lorg/apache/spark/sql/catalyst/encoders/ExpressionEncoder; at zingg.spark.core.util.SparkBlockingTreeUtil.getBlockHashes(SparkBlockingTreeUtil.java:46) at zingg.common.core.executor.TrainingDataFinder.execute(TrainingDataFinder.java:83) at zingg.common.client.Client.execute(Client.java:246) 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-2163793904661188>, line 14 6 LABELS = { 7 'Uncertain':2, 8 'Match':1, 9 'No Match':0 10 } 12 # GET CANDIDATE PAIRS 13 # ======================================================== ---> 14 candidate_pairs_pd = get_candidate_pairs() 15 n_pairs = int(candidate_pairs_pd.shape[0]/2) 16 # ======================================================== 17 18 # DEFINE IPYWIDGET DISPLAY 19 # ======================================================== File <command-2163793904661186>, line 50, in get_candidate_pairs() 45 candidate_pairs_pd = _get_candidate_pairs(depth+1) 47 return candidate_pairs_pd ---> 50 return _get_candidate_pairs() File <command-2163793904661186>, line 43, in get_candidate_pairs.<locals>._get_candidate_pairs(depth) 40 elif candidate_pairs_pd.shape[0] == 0: # nothing found, trigger zingg and try again 42 print('No unmarked candidate pairs found. Running findTraining job ...','\n') ---> 43 findTrainingData.execute() 45 candidate_pairs_pd = _get_candidate_pairs(depth+1) 47 return candidate_pairs_pd File /local_disk0/.ephemeral_nfs/cluster_libraries/python/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:224, in capture_sql_exception.<locals>.deco(*a, **kw) 222 def deco(*a: Any, **kw: Any) -> Any: 223 try: --> 224 return f(*a, **kw) 225 except Py4JJavaError as e: 226 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))