I am not sure why, as I don’t recall any change to docker images that we have, in which we meet all the version requirements (python 3.7.6, hail v0.2, Spark 2.4.x , Java 8).
I am using Python 3, Gen3 Data Commons Jupyter Notebooks, and to confirm the same error I am getting inside these, I run the following CLI via the terminal to reproduce the error:
habibi:~$ ipython3
Python 3.7.6 | packaged by conda-forge | (default, Jun 1 2020, 18:57:50)
Type ‘copyright’, ‘credits’ or ‘license’ for more information
IPython 7.15.0 – An enhanced Interactive Python. Type ‘?’ for help.
In [1]: import hail as hl
In [2]: hl.init()
2021-02-26 09:50:03 WARN NativeCodeLoader:62 - Unable to load native-hadoop library for your platform… using builtin-java classes where applicable
Setting default log level to “WARN”.
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Py4JJavaError Traceback (most recent call last)
in
----> 1 hl.init()
in init(sc, app_name, master, local, log, quiet, append, min_block_size, branching_factor, tmp_dir, default_reference, idempotent, global_seed, spark_conf, skip_logging_configuration, local_tmpdir, _optimizer_iterations)
/opt/conda/lib/python3.7/site-packages/hail/typecheck/check.py in wrapper(__original_func, *args, **kwargs)
612 def wrapper(original_func, *args, **kwargs):
613 args, kwargs = check_all(__original_func, args, kwargs, checkers, is_method=is_method)
→ 614 return original_func(*args, **kwargs)
615
616 return wrapper
/opt/conda/lib/python3.7/site-packages/hail/context.py in init(sc, app_name, master, local, log, quiet, append, min_block_size, branching_factor, tmp_dir, default_reference, idempotent, global_seed, spark_conf, skip_logging_configuration, local_tmpdir, _optimizer_iterations)
Py4JJavaError: An error occurred while calling z:is.hail.backend.spark.SparkBackend.apply.
: java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)Lscala/collection/mutable/ArrayOps;
at is.hail.backend.spark.SparkBackend$.majorMinor$1(SparkBackend.scala:58)
at is.hail.backend.spark.SparkBackend$.checkSparkCompatibility(SparkBackend.scala:60)
at is.hail.backend.spark.SparkBackend$.createSparkConf(SparkBackend.scala:71)
at is.hail.backend.spark.SparkBackend$.configureAndCreateSparkContext(SparkBackend.scala:120)
at is.hail.backend.spark.SparkBackend$.apply(SparkBackend.scala:196)
at is.hail.backend.spark.SparkBackend.apply(SparkBackend.scala)
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)