Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEA] Support Scala 2.13 #1525

Closed
kuhushukla opened this issue Jan 14, 2021 · 19 comments · Fixed by #8592
Closed

[FEA] Support Scala 2.13 #1525

kuhushukla opened this issue Jan 14, 2021 · 19 comments · Fixed by #8592
Assignees
Labels
audit_3.2.0 audit_3.3.0 Audit related tasks for 3.3.0 feature request New feature or request Scala 2.13 Issues related to Scala 2.13 binaries Spark 3.2+ Spark 3.4+ Spark 3.4+ issues

Comments

@kuhushukla
Copy link
Collaborator

Is your feature request related to a problem? Please describe.
Move and test our sql plugin with scala 2.13 compile time after apache/spark@d6a68e0b67

Describe the solution you'd like
Code should compile with scala 2.13

@kuhushukla kuhushukla added feature request New feature or request ? - Needs Triage Need team to review and classify audit_3.1.0 labels Jan 14, 2021
@revans2
Copy link
Collaborator

revans2 commented Jan 15, 2021

To be clear the above issue allows for compilation with 2.13 but does not move the default to 2.13 We probably should do the same. I don't think we want to release/test anything against scala 2.13 until it is the default on at least one release that we are targeting. We might want to have a nightly build just to verify that we didn't break compilation though.

@kuhushukla
Copy link
Collaborator Author

We probably should do the same.

Yup.

@sameerz sameerz changed the title [FEA] Move to scala 2.13 for plugin compile [FEA] Support Scala 2.13 Jan 19, 2021
@sameerz sameerz removed the ? - Needs Triage Need team to review and classify label Jan 19, 2021
@tgravescs
Copy link
Collaborator

Note they are targetting scala 2.13 for spark 3.2 so we would need a plugin with scala 2.13 that matches. @sameerz

@sameerz
Copy link
Collaborator

sameerz commented Jul 20, 2021

Per @tgravescs there will be a scala 2.13 artifact but it will not be the default version. It will be good if we can also generate a 2.13 artifact.

@pxLi @GaryShen2008 @NvTimLiu @gerashegalov

@pxLi
Copy link
Collaborator

pxLi commented Jul 21, 2021

@sameerz @tgravescs So we are going to build 2 sets of artifacts for 21.10.0, e.g.
2.12(default): rapids-4-spark_2.12-21.10.0.jar, rapids-4-spark-sql_2.12-21.10.0.jar...
2.13(non-default): rapids-4-spark_2.13-21.10.0.jar, rapids-4-spark-sql_2.13-21.10.0.jar...
And we will release two plugin artifacts (2.12, 2.13), am I right?

@sameerz
Copy link
Collaborator

sameerz commented Jul 21, 2021

Yes, we would need to build two sets of artifacts for 21.10.0, one for 2.12 (default) and one for 2.13 (non-default).

@NvTimLiu
Copy link
Collaborator

NvTimLiu commented Aug 17, 2021

As my understanding, to build spark-rapids-2.13, we first need the apache/spark dependencies of 2.13-jars/ 2.13-binaries (e.g. spark-sql_2.13.jar/spark-3.x.x-2.13.tgz).

Currently, there is no official release of scala-2.13 based apache/spark jars/binaries available, what we hear is they are targeting scala-2.13 for spark-3.2.0 release.

So for the spark-rapids-2.13, what spark versions do we plan to support?
Seems we can only support the spark-3.2.0 if will they release scala-2.13 based jars/binaries`

And if so, does that mean for spark-rapids-2.13, we need to disable all other spark versions of shims, and only support spark-3.2.0 shims? (Currently, we still have problems to build spark-rapids spark320 shims)

@sameerz @tgravescs @revans2

@NvTimLiu
Copy link
Collaborator

I've tried to build a SNAPSHOT version of scala-2.13 based spark-3.1.3 binaries, and ran it with our spark-rapids_2.12, there were scala SDK compatible issues: java.lang.ClassNotFoundException: scala.collection.mutable.ArrayOps$ofRef

tt@Spark-PC:~/tt$ SPARK_HOME=/home/tt/spark-3.1.3-scala213 LOCAL_JAR_PATH=/home/tt/tt bash integration_tests/run_pyspark_from_build.sh -k json_test
+++ dirname integration_tests/run_pyspark_from_build.sh
++ cd integration_tests
++ pwd -P
+ SCRIPTPATH=/home/tt/integration_tests
+ cd /home/tt/integration_tests
++ echo
++ tr '[:upper:]' '[:lower:]'
+ [[ '' == \t\r\u\e ]]
+ [[ -z /home/tt/spark-3.1.3-scala213 ]]
+ echo 'WILL RUN TESTS WITH SPARK_HOME: /home/tt/spark-3.1.3-scala213'
WILL RUN TESTS WITH SPARK_HOME: /home/tt/spark-3.1.3-scala213
+ '[' -d /home/tt/tt ']'
++ echo /home/tt/cudf-21.10.0-SNAPSHOT-cuda11.jar
+ CUDF_JARS=/home/tt/cudf-21.10.0-SNAPSHOT-cuda11.jar
++ echo /home/tt/rapids-4-spark_2.12-21.10.0-SNAPSHOT.jar
+ PLUGIN_JARS=/home/tt/rapids-4-spark_2.12-21.10.0-SNAPSHOT.jar
++ echo /home/tt/rapids-4-spark-integration-tests_2.12-21.10.0-SNAPSHOT-tests.jar
+ TEST_JARS=/home/tt/rapids-4-spark-integration-tests_2.12-21.10.0-SNAPSHOT-tests.jar
++ echo /home/tt/rapids-4-spark-udf-examples_2.12-21.10.0-SNAPSHOT.jar
+ UDF_EXAMPLE_JARS=/home/tt/rapids-4-spark-udf-examples_2.12-21.10.0-SNAPSHOT.jar
+ ALL_JARS='/home/tt/cudf-21.10.0-SNAPSHOT-cuda11.jar /home/tt/rapids-4-spark_2.12-21.10.0-SNAPSHOT.jar /home/tt/rapids-4-spark-integration-tests_2.12-21.10.0-SNAPSHOT-tests.jar /home/tt/rapids-4-spark-udf-examples_2.12-21.10.0-SNAPSHOT.jar'
+ echo 'AND PLUGIN JARS: /home/tt/cudf-21.10.0-SNAPSHOT-cuda11.jar /home/tt/rapids-4-spark_2.12-21.10.0-SNAPSHOT.jar /home/tt/rapids-4-spark-integration-tests_2.12-21.10.0-SNAPSHOT-tests.jar /home/tt/rapids-4-spark-udf-examples_2.12-21.10.0-SNAPSHOT.jar'
AND PLUGIN JARS: /home/tt/cudf-21.10.0-SNAPSHOT-cuda11.jar /home/tt/rapids-4-spark_2.12-21.10.0-SNAPSHOT.jar /home/tt/rapids-4-spark-integration-tests_2.12-21.10.0-SNAPSHOT-tests.jar /home/tt/rapids-4-spark-udf-examples_2.12-21.10.0-SNAPSHOT.jar
+ [[ '' != '' ]]
+ [[ '' != '' ]]
+ [[ '' == '' ]]
++ nvidia-smi --query-gpu=memory.free --format=csv,noheader
++ awk '{if (MAX < $1){ MAX = $1}} END {print int(MAX / (2.3 * 1024)) - 1}'
+ TEST_PARALLEL=4
+ echo 'AUTO DETECTED PARALLELISM OF 4'
AUTO DETECTED PARALLELISM OF 4
+ python -c 'import findspark'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'findspark'
+ TEST_PARALLEL=0
+ echo 'findspark not installed cannot run tests in parallel'
findspark not installed cannot run tests in parallel
+ python -c 'import xdist.plugin'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'xdist'
+ TEST_PARALLEL=0
+ echo 'xdist not installed cannot run tests in parallel'
xdist not installed cannot run tests in parallel
+ TEST_TYPE_PARAM=
+ [[ '' != '' ]]
+ [[ 0 -lt 2 ]]
+ TEST_PARALLEL_OPTS=()
+ MEMORY_FRACTION=1
+ RUN_DIR=/home/tt/integration_tests/target/run_dir
+ mkdir -p /home/tt/integration_tests/target/run_dir
+ cd /home/tt/integration_tests/target/run_dir
+ LOCAL_ROOTDIR=/home/tt/integration_tests
+ INPUT_PATH=/home/tt/integration_tests
+ RUN_TESTS_COMMAND=("$SCRIPTPATH"/runtests.py --rootdir "$LOCAL_ROOTDIR" "$LOCAL_ROOTDIR"/src/main/python)
+ TEST_COMMON_OPTS=(-v -rfExXs "$TEST_TAGS" --std_input_path="$INPUT_PATH"/src/test/resources --color=yes $TEST_TYPE_PARAM "$TEST_ARGS" $RUN_TEST_PARAMS "$@")
+ NUM_LOCAL_EXECS=0
+ MB_PER_EXEC=1024
+ CORES_PER_EXEC=1
++ /home/tt/spark-3.1.3-scala213/bin/pyspark --version
++ grep -v Scala
++ awk '/version\ [0-9.]+/{print $NF}'
+ VERSION_STRING=3.1.3-SNAPSHOT
+ [[ -z 3.1.3-SNAPSHOT ]]
+ echo 'Detected Spark version 3.1.3-SNAPSHOT'
Detected Spark version 3.1.3-SNAPSHOT
+ SPARK_TASK_MAXFAILURES=1
+ [[ 3.1.3-SNAPSHOT < 3.1.1 ]]
+ export PYSP_TEST_spark_driver_extraClassPath=/home/tt/cudf-21.10.0-SNAPSHOT-cuda11.jar:/home/tt/rapids-4-spark_2.12-21.10.0-SNAPSHOT.jar:/home/tt/rapids-4-spark-integration-tests_2.12-21.10.0-SNAPSHOT-tests.jar:/home/tt/rapids-4-spark-udf-examples_2.12-21.10.0-SNAPSHOT.jar
+ PYSP_TEST_spark_driver_extraClassPath=/home/tt/cudf-21.10.0-SNAPSHOT-cuda11.jar:/home/tt/rapids-4-spark_2.12-21.10.0-SNAPSHOT.jar:/home/tt/rapids-4-spark-integration-tests_2.12-21.10.0-SNAPSHOT-tests.jar:/home/tt/rapids-4-spark-udf-examples_2.12-21.10.0-SNAPSHOT.jar
+ export PYSP_TEST_spark_executor_extraClassPath=/home/tt/cudf-21.10.0-SNAPSHOT-cuda11.jar:/home/tt/rapids-4-spark_2.12-21.10.0-SNAPSHOT.jar:/home/tt/rapids-4-spark-integration-tests_2.12-21.10.0-SNAPSHOT-tests.jar:/home/tt/rapids-4-spark-udf-examples_2.12-21.10.0-SNAPSHOT.jar
+ PYSP_TEST_spark_executor_extraClassPath=/home/tt/cudf-21.10.0-SNAPSHOT-cuda11.jar:/home/tt/rapids-4-spark_2.12-21.10.0-SNAPSHOT.jar:/home/tt/rapids-4-spark-integration-tests_2.12-21.10.0-SNAPSHOT-tests.jar:/home/tt/rapids-4-spark-udf-examples_2.12-21.10.0-SNAPSHOT.jar
+ export 'PYSP_TEST_spark_driver_extraJavaOptions=-ea -Duser.timezone=UTC '
+ PYSP_TEST_spark_driver_extraJavaOptions='-ea -Duser.timezone=UTC '
+ export 'PYSP_TEST_spark_executor_extraJavaOptions=-ea -Duser.timezone=UTC'
+ PYSP_TEST_spark_executor_extraJavaOptions='-ea -Duser.timezone=UTC'
+ export PYSP_TEST_spark_ui_showConsoleProgress=false
+ PYSP_TEST_spark_ui_showConsoleProgress=false
+ export PYSP_TEST_spark_sql_session_timeZone=UTC
+ PYSP_TEST_spark_sql_session_timeZone=UTC
+ export PYSP_TEST_spark_sql_shuffle_partitions=12
+ PYSP_TEST_spark_sql_shuffle_partitions=12
+ export PYSP_TEST_spark_dynamicAllocation_enabled=false
+ PYSP_TEST_spark_dynamicAllocation_enabled=false
+ export PYSP_TEST_spark_task_maxFailures=1
+ PYSP_TEST_spark_task_maxFailures=1
+ (( NUM_LOCAL_EXECS > 0 ))
+ '[' -z '' ']'
+ [[ '' != *\-\-\m\a\s\t\e\r* ]]
+ export 'PYSP_TEST_spark_master=local[*,1]'
+ PYSP_TEST_spark_master='local[*,1]'
+ (( 0 > 0 ))
+ /home/tt/spark-3.1.3-scala213/bin/spark-submit --jars /home/tt/cudf-21.10.0-SNAPSHOT-cuda11.jar,/home/tt/rapids-4-spark_2.12-21.10.0-SNAPSHOT.jar,/home/tt/rapids-4-spark-integration-tests_2.12-21.10.0-SNAPSHOT-tests.jar,/home/tt/rapids-4-spark-udf-examples_2.12-21.10.0-SNAPSHOT.jar --driver-java-options '-ea -Duser.timezone=UTC ' /home/tt/integration_tests/runtests.py --rootdir /home/tt/integration_tests /home/tt/integration_tests/src/main/python -v -rfExXs '' --std_input_path=/home/tt/integration_tests/src/test/resources --color=yes '' -k json_test
21/08/17 07:50:21 WARN Utils: Your hostname, Spark-PC resolves to a loopback address: 127.0.1.1; using 10.19.183.187 instead (on interface eno1)
21/08/17 07:50:21 WARN Utils: Set SPARK_LOCAL_IP if you need to bind to another address
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.spark.unsafe.Platform (file:/home/tt/spark-3.1.3-scala213/jars/spark-unsafe_2.13-3.1.3-SNAPSHOT.jar) to constructor java.nio.DirectByteBuffer(long,int)
WARNING: Please consider reporting this to the maintainers of org.apache.spark.unsafe.Platform
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
21/08/17 07:50:21 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
21/08/17 07:50:22 INFO SparkContext: Running Spark version 3.1.3-SNAPSHOT
21/08/17 07:50:22 INFO ResourceUtils: ==============================================================
21/08/17 07:50:22 INFO ResourceUtils: No custom resources configured for spark.driver.
21/08/17 07:50:22 INFO ResourceUtils: ==============================================================
21/08/17 07:50:22 INFO SparkContext: Submitted application: rapids spark plugin integration tests (python)
21/08/17 07:50:22 INFO ResourceProfile: Default ResourceProfile created, executor resources: Map(cores -> name: cores, amount: 1, script: , vendor: , memory -> name: memory, amount: 1024, script: , vendor: , offHeap -> name: offHeap, amount: 0, script: , vendor: ), task resources: Map(cpus -> name: cpus, amount: 1.0)
21/08/17 07:50:22 INFO ResourceProfile: Limiting resource is cpu
21/08/17 07:50:22 INFO ResourceProfileManager: Added ResourceProfile id: 0
21/08/17 07:50:22 INFO SecurityManager: Changing view acls to: tt
21/08/17 07:50:22 INFO SecurityManager: Changing modify acls to: tt
21/08/17 07:50:22 INFO SecurityManager: Changing view acls groups to:
21/08/17 07:50:22 INFO SecurityManager: Changing modify acls groups to:
21/08/17 07:50:22 INFO SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users  with view permissions: Set(tt); groups with view permissions: Set(); users  with modify permissions: Set(tt); groups with modify permissions: Set()
21/08/17 07:50:22 INFO Utils: Successfully started service 'sparkDriver' on port 34913.
21/08/17 07:50:22 INFO SparkEnv: Registering MapOutputTracker
21/08/17 07:50:22 INFO SparkEnv: Registering BlockManagerMaster
21/08/17 07:50:22 INFO BlockManagerMasterEndpoint: Using org.apache.spark.storage.DefaultTopologyMapper for getting topology information
21/08/17 07:50:22 INFO BlockManagerMasterEndpoint: BlockManagerMasterEndpoint up
21/08/17 07:50:22 INFO SparkEnv: Registering BlockManagerMasterHeartbeat
21/08/17 07:50:22 INFO DiskBlockManager: Created local directory at /tmp/blockmgr-79453c20-b8bb-4318-87d6-90604803bf36
21/08/17 07:50:22 INFO MemoryStore: MemoryStore started with capacity 434.4 MiB
21/08/17 07:50:22 INFO SparkEnv: Registering OutputCommitCoordinator
21/08/17 07:50:22 INFO Utils: Successfully started service 'SparkUI' on port 4040.
21/08/17 07:50:22 INFO SparkUI: Bound SparkUI to 0.0.0.0, and started at http://spark-tim:4040
21/08/17 07:50:22 INFO SparkContext: Added JAR file:///home/tt/cudf-21.10.0-SNAPSHOT-cuda11.jar at spark://spark-tim:34913/jars/cudf-21.10.0-SNAPSHOT-cuda11.jar with timestamp 1629186622242
21/08/17 07:50:22 INFO SparkContext: Added JAR file:///home/tt/rapids-4-spark_2.12-21.10.0-SNAPSHOT.jar at spark://spark-tim:34913/jars/rapids-4-spark_2.12-21.10.0-SNAPSHOT.jar with timestamp 1629186622242
21/08/17 07:50:22 INFO SparkContext: Added JAR file:///home/tt/rapids-4-spark-integration-tests_2.12-21.10.0-SNAPSHOT-tests.jar at spark://spark-tim:34913/jars/rapids-4-spark-integration-tests_2.12-21.10.0-SNAPSHOT-tests.jar with timestamp 1629186622242
21/08/17 07:50:22 INFO SparkContext: Added JAR file:///home/tt/rapids-4-spark-udf-examples_2.12-21.10.0-SNAPSHOT.jar at spark://spark-tim:34913/jars/rapids-4-spark-udf-examples_2.12-21.10.0-SNAPSHOT.jar with timestamp 1629186622242
Spark event logs will appear under ./eventlog_gw0. Set the environmnet variable SPARK_EVENTLOG_ENABLED=false if you want to disable it
ImportError while loading conftest '/home/tt/integration_tests/src/main/python/conftest.py'.
../../src/main/python/conftest.py:17: in <module>
    from spark_init_internal import get_spark_i_know_what_i_am_doing
../../src/main/python/spark_init_internal.py:98: in <module>
    _spark = _spark__init()
../../src/main/python/spark_init_internal.py:52: in _spark__init
    .appName('rapids spark plugin integration tests (python)').getOrCreate()
/home/tt/spark-3.1.3-scala213/python/lib/pyspark.zip/pyspark/sql/session.py:228: in getOrCreate
    sc = SparkContext.getOrCreate(sparkConf)
/home/tt/spark-3.1.3-scala213/python/lib/pyspark.zip/pyspark/context.py:384: in getOrCreate
    SparkContext(conf=conf or SparkConf())
/home/tt/spark-3.1.3-scala213/python/lib/pyspark.zip/pyspark/context.py:147: in __init__
    conf, jsc, profiler_cls)
/home/tt/spark-3.1.3-scala213/python/lib/pyspark.zip/pyspark/context.py:209: in _do_init
    self._jsc = jsc or self._initialize_context(self._conf._jconf)
/home/tt/spark-3.1.3-scala213/python/lib/pyspark.zip/pyspark/context.py:321: in _initialize_context
    return self._jvm.JavaSparkContext(jconf)
/home/tt/spark-3.1.3-scala213/python/lib/py4j-0.10.9-src.zip/py4j/java_gateway.py:1569: in __call__
    answer, self._gateway_client, None, self._fqn)
/home/tt/spark-3.1.3-scala213/python/lib/py4j-0.10.9-src.zip/py4j/protocol.py:328: in get_return_value
    format(target_id, ".", name), value)
E   py4j.protocol.Py4JJavaError: An error occurred while calling None.org.apache.spark.api.java.JavaSparkContext.
E   : java.lang.NoClassDefFoundError: scala/collection/mutable/ArrayOps$ofRef
E       at com.nvidia.spark.rapids.RapidsPluginUtils$.fixupConfigs(Plugin.scala:97)
E       at com.nvidia.spark.rapids.RapidsDriverPlugin.init(Plugin.scala:156)
E       at org.apache.spark.internal.plugin.DriverPluginContainer.$anonfun$driverPlugins$1(PluginContainer.scala:53)
E       at scala.collection.StrictOptimizedIterableOps.flatMap(StrictOptimizedIterableOps.scala:117)
E       at scala.collection.StrictOptimizedIterableOps.flatMap$(StrictOptimizedIterableOps.scala:104)
E       at scala.collection.immutable.ArraySeq.flatMap(ArraySeq.scala:35)
E       at org.apache.spark.internal.plugin.DriverPluginContainer.<init>(PluginContainer.scala:46)
E       at org.apache.spark.internal.plugin.PluginContainer$.apply(PluginContainer.scala:210)
E       at org.apache.spark.internal.plugin.PluginContainer$.apply(PluginContainer.scala:193)
E       at org.apache.spark.SparkContext.<init>(SparkContext.scala:554)
E       at org.apache.spark.api.java.JavaSparkContext.<init>(JavaSparkContext.scala:58)
E       at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
E       at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
E       at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
E       at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
E       at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:247)
E       at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)
E       at py4j.Gateway.invoke(Gateway.java:238)
E       at py4j.commands.ConstructorCommand.invokeConstructor(ConstructorCommand.java:80)
E       at py4j.commands.ConstructorCommand.execute(ConstructorCommand.java:69)
E       at py4j.GatewayConnection.run(GatewayConnection.java:238)
E       at java.base/java.lang.Thread.run(Thread.java:829)
E   Caused by: java.lang.ClassNotFoundException: scala.collection.mutable.ArrayOps$ofRef
E       at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
E       at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
E       at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
E       ... 22 more
21/08/17 07:50:22 INFO DiskBlockManager: Shutdown hook called
21/08/17 07:50:23 INFO ShutdownHookManager: Shutdown hook called
21/08/17 07:50:23 INFO ShutdownHookManager: Deleting directory /tmp/spark-203e1497-4eaf-46aa-ada5-1b701e1aef3b
21/08/17 07:50:23 INFO ShutdownHookManager: Deleting directory /tmp/spark-2b3db9b8-b5c6-4f07-92a3-acb63bfd963f/userFiles-edb86bd1-7cf3-442e-a67a-a507ab8fcfbb
21/08/17 07:50:23 INFO ShutdownHookManager: Deleting directory /tmp/spark-2b3db9b8-b5c6-4f07-92a3-acb63bfd963f
tt@Spark-PC:~/tt$

@NvTimLiu
Copy link
Collaborator

NvTimLiu commented Aug 17, 2021

I also tried to build spark-rapids_2.13, our spark-rapids source code also have the similar scala SDK compatible issues, e.g. scala.collection.mutable.ArrayBuilder[Int]. Unspecified value parameter evidence$1

tt@host:~/work.d/spark-rapids$ mvn -s jenkins/settings.xml -nsu -DskipTests package -pl sql-plugin
[INFO] Scanning for projects...
[WARNING]
[WARNING] Some problems were encountered while building the effective model for com.nvidia:rapids-4-spark-tools_2.12:jar:21.10.0-SNSHOT
[WARNING] 'build.plugins.plugin.version' for org.scala-tools:maven-scala-plugin is missing. @ line 84, column 21
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING]
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building RAPIDS Accelerator for Apache Spark SQL Plugin 21.10.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- scala-maven-plugin:4.3.0:add-source (eclipse-add-source) @ rapids-4-spark-sql_2.12 ---
[INFO] Add Source directory: /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala
[INFO] Add Test Source directory: /home/tt/work.d/spark-rapids/sql-plugin/src/test/scala
[INFO]
[INFO] --- jacoco-maven-plugin:0.8.5:prepare-agent (prepare-agent) @ rapids-4-spark-sql_2.12 ---
[INFO] argLine set to -javaagent:/home/tt/.m2/repository/org/jacoco/org.jacoco.agent/0.8.5/org.jacoco.agent-0.8.5-runtime.jar=desile=/home/tt/work.d/spark-rapids/sql-plugin/target/jacoco.exec,append=true,includes=ai.rapids.cudf.*:com.nvidia.spark.*:org.apachspark.sql.rapids.*,excludes=com.nvidia.shaded.spark.*
[INFO]
[INFO] --- maven-antrun-plugin:1.8:run (default) @ rapids-4-spark-sql_2.12 ---
[INFO] Executing tasks

main:
[INFO] Executed tasks
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ rapids-4-spark-sql_2.12 ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] Copying 1 resource to META-INF
[INFO] Copying 4 resources
[INFO]
[INFO] --- scala-maven-plugin:4.3.0:compile (scala-compile-first) @ rapids-4-spark-sql_2.12 ---
[INFO] Using incremental compilation using Mixed compile order
[INFO] Compiler bridge file: /home/tt/.sbt/1.0/zinc/org.scala-sbt/org.scala-sbt-compiler-bridge_2.13-1.3.1-bin_2.13.5__52.0-1.3.10191012T045515.jar
[INFO] Compiling 182 Scala sources and 26 Java sources to /home/tt/work.d/spark-rapids/sql-plugin/target/classes ...
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/java/com/nvidia/spark/rapids/ColumnCastUtil.scala:71: not enoughrguments for method make: (implicit evidence$1: scala.reflect.ClassTag[ai.rapids.cudf.ColumnView]): scala.collection.mutable.ArrayBlder[ai.rapids.cudf.ColumnView].
Unspecified value parameter evidence$1.
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/java/com/nvidia/spark/rapids/ColumnCastUtil.scala:73: not enoughrguments for method make: (implicit evidence$1: scala.reflect.ClassTag[Int]): scala.collection.mutable.ArrayBuilder[Int].
Unspecified value parameter evidence$1.
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/CostBasedOptimizer.scala:75: type smatch;
 found   : scala.collection.mutable.ListBuffer[com.nvidia.spark.rapids.Optimization]
 required: Seq[com.nvidia.spark.rapids.Optimization]
[INFO] [Info] : scala.collection.mutable.ListBuffer[com.nvidia.spark.rapids.Optimization] <: Seq[com.nvidia.spark.rapids.Optimizati]?
[INFO] [Info] : false
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuCast.scala:1139: type mismatch;
 found   : scala.collection.mutable.ArrayBuffer[ai.rapids.cudf.ColumnVector]
 required: Seq[?]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuGenerateExec.scala:342: type miatch;
 found   : scala.collection.mutable.ArrayBuffer[ai.rapids.cudf.ColumnVector]
 required: Seq[?]
[INFO] [Info] : scala.collection.mutable.ArrayBuffer[ai.rapids.cudf.ColumnVector] <: Seq[?]?
[INFO] [Info] : false
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuKeyBatchingIterator.scala:140: pe mismatch;
 found   : scala.collection.mutable.ArrayBuffer[ai.rapids.cudf.Table]
 required: Seq[ai.rapids.cudf.Table]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuMultiFileReader.scala:826: typeismatch;
 found   : scala.collection.mutable.ArrayBuffer[com.nvidia.spark.rapids.DataBlockBase]
 required: Seq[com.nvidia.spark.rapids.DataBlockBase]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuMultiFileReader.scala:803: consuctor cannot be instantiated to expected type;
 found   : (T1, T2, T3, T4)
 required: Nothing
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuMultiFileReader.scala:962: typeismatch;
 found   : scala.collection.mutable.ArrayBuffer[(org.apache.hadoop.fs.Path, com.nvidia.spark.rapids.DataBlockBase)]
 required: Seq[(org.apache.hadoop.fs.Path, com.nvidia.spark.rapids.DataBlockBase)]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuOrcScan.scala:431: type mismatc
 found   : scala.collection.mutable.ArrayBuffer[com.nvidia.spark.rapids.OrcOutputStripe]
 required: Seq[com.nvidia.spark.rapids.OrcOutputStripe]
[INFO] [Info] : scala.collection.mutable.ArrayBuffer[com.nvidia.spark.rapids.OrcOutputStripe] <: Seq[com.nvidia.spark.rapids.OrcOuttStripe]?
[INFO] [Info] : false
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuOrcScan.scala:898: type mismatc
 found   : scala.collection.mutable.Buffer[org.apache.orc.StripeInformation]
 required: Seq[org.apache.orc.StripeInformation]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuOrcScan.scala:1049: type mismat;
 found   : scala.collection.mutable.ArrayBuffer[com.nvidia.spark.rapids.OrcOutputStripe]
 required: Seq[com.nvidia.spark.rapids.OrcOutputStripe]
[INFO] [Info] : scala.collection.mutable.ArrayBuffer[com.nvidia.spark.rapids.OrcOutputStripe] <: Seq[com.nvidia.spark.rapids.OrcOuttStripe]?
[INFO] [Info] : false
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuOrcScan.scala:1585: type mismat;
 found   : scala.collection.mutable.ArrayBuffer[com.nvidia.spark.rapids.DataBlockBase]
 required: Seq[com.nvidia.spark.rapids.DataBlockBase]
[INFO] [Info] : scala.collection.mutable.ArrayBuffer[com.nvidia.spark.rapids.DataBlockBase] <: Seq[com.nvidia.spark.rapids.DataBlocase]?
[INFO] [Info] : false
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuParquetScan.scala:217: type mistch;
 found   : scala.collection.mutable.Buffer[org.apache.parquet.schema.Type]
 required: Seq[org.apache.parquet.schema.Type]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuParquetScan.scala:302: type mistch;
 found   : scala.collection.mutable.Buffer[org.apache.parquet.hadoop.metadata.ColumnPath]
 required: Seq[org.apache.parquet.hadoop.metadata.ColumnPath]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuParquetScan.scala:302: type mistch;
 found   : scala.collection.mutable.Buffer[org.apache.parquet.hadoop.metadata.BlockMetaData]
 required: Seq[org.apache.parquet.hadoop.metadata.BlockMetaData]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuParquetScan.scala:377: type mistch;
 found   : scala.collection.mutable.ArrayBuffer[com.nvidia.spark.rapids.ParquetSingleDataBlockMeta]
 required: Seq[com.nvidia.spark.rapids.ParquetSingleDataBlockMeta]
[INFO] [Info] : scala.collection.mutable.ArrayBuffer[com.nvidia.spark.rapids.ParquetSingleDataBlockMeta] <: Seq[com.nvidia.spark.rads.ParquetSingleDataBlockMeta]?
[INFO] [Info] : false
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuParquetScan.scala:574: type mistch;
 found   : scala.collection.mutable.ArrayBuffer[org.apache.parquet.hadoop.metadata.ColumnChunkMetaData]
 required: Seq[org.apache.parquet.hadoop.metadata.ColumnChunkMetaData]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuParquetScan.scala:582: type mistch;
 found   : scala.collection.mutable.ArrayBuffer[org.apache.parquet.hadoop.metadata.BlockMetaData]
 required: Seq[org.apache.parquet.hadoop.metadata.BlockMetaData]
[INFO] [Info] : scala.collection.mutable.ArrayBuffer[org.apache.parquet.hadoop.metadata.BlockMetaData] <: Seq[org.apache.parquet.haop.metadata.BlockMetaData]?
[INFO] [Info] : false
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuParquetScan.scala:602: type mistch;
 found   : scala.collection.mutable.Buffer[org.apache.parquet.schema.Type]
 required: Seq[org.apache.parquet.schema.Type]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuParquetScan.scala:614: type mistch;
 found   : scala.collection.mutable.Buffer[org.apache.parquet.schema.Type]
 required: Seq[org.apache.parquet.schema.Type]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuParquetScan.scala:719: type mistch;
 found   : scala.collection.mutable.ArrayBuffer[org.apache.parquet.hadoop.metadata.BlockMetaData]
 required: Seq[org.apache.parquet.hadoop.metadata.BlockMetaData]
[INFO] [Info] : scala.collection.mutable.ArrayBuffer[org.apache.parquet.hadoop.metadata.BlockMetaData] <: Seq[org.apache.parquet.haop.metadata.BlockMetaData]?
[INFO] [Info] : false
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuParquetScan.scala:831: type mistch;
 found   : scala.collection.mutable.ArrayBuffer[com.nvidia.spark.rapids.DataBlockBase]
 required: Seq[org.apache.parquet.hadoop.metadata.BlockMetaData]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuParquetScan.scala:1361: type miatch;
 found   : scala.collection.mutable.Buffer[org.apache.parquet.hadoop.metadata.ColumnChunkMetaData]
 required: Seq[org.apache.parquet.hadoop.metadata.ColumnChunkMetaData]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuSortExec.scala:489: type mismat;
 found   : scala.collection.mutable.ArrayBuffer[ai.rapids.cudf.Table]
 required: Seq[ai.rapids.cudf.Table]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuWindowExec.scala:362: type mismch;
 found   : scala.collection.mutable.ArrayBuffer[org.apache.spark.sql.catalyst.expressions.NamedExpression]
 required: Seq[org.apache.spark.sql.catalyst.expressions.NamedExpression]
[INFO] [Info] : scala.collection.mutable.ArrayBuffer[org.apache.spark.sql.catalyst.expressions.NamedExpression] <: Seq[org.apache.srk.sql.catalyst.expressions.NamedExpression]?
[INFO] [Info] : false
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuWindowExec.scala:362: type mismch;
 found   : scala.collection.mutable.ArrayBuffer[org.apache.spark.sql.catalyst.expressions.NamedExpression]
 required: Seq[org.apache.spark.sql.catalyst.expressions.NamedExpression]
[INFO] [Info] : scala.collection.mutable.ArrayBuffer[org.apache.spark.sql.catalyst.expressions.NamedExpression] <: Seq[org.apache.srk.sql.catalyst.expressions.NamedExpression]?
[INFO] [Info] : false
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuWindowExec.scala:362: type mismch;
 found   : scala.collection.mutable.ArrayBuffer[org.apache.spark.sql.catalyst.expressions.NamedExpression]
 required: Seq[org.apache.spark.sql.catalyst.expressions.NamedExpression]
[INFO] [Info] : scala.collection.mutable.ArrayBuffer[org.apache.spark.sql.catalyst.expressions.NamedExpression] <: Seq[org.apache.srk.sql.catalyst.expressions.NamedExpression]?
[INFO] [Info] : false
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuWindowExec.scala:766: type mismch;
 found   : scala.collection.mutable.ArrayBuffer[ai.rapids.cudf.ColumnVector]
 required: Seq[ai.rapids.cudf.ColumnVector]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuWindowExec.scala:769: ambiguouseference to overloaded definition,
both method withResource in trait Arm of type [T <: AutoCloseable, V](r: scala.collection.mutable.ArrayBuffer[T])(block: scala.colltion.mutable.ArrayBuffer[T] => V): V
and  method withResource in trait Arm of type [T <: AutoCloseable, V](r: Array[T])(block: Array[T] => V): V
match argument types (Nothing)
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuWindowExec.scala:874: type mismch;
 found   : scala.collection.mutable.ArrayBuffer[ai.rapids.cudf.ReplacePolicyWithColumn]
 required: Seq[ai.rapids.cudf.ReplacePolicyWithColumn]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuWindowExec.scala:1058: type mistch;
 found   : scala.collection.mutable.ArrayBuffer[org.apache.spark.sql.catalyst.expressions.Expression]
 required: Seq[org.apache.spark.sql.catalyst.expressions.Expression]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/PlanUtils.scala:68: type mismatch;
 found   : scala.collection.mutable.ListBuffer[org.apache.spark.sql.execution.SparkPlan]
 required: Seq[org.apache.spark.sql.execution.SparkPlan]
[INFO] [Info] : scala.collection.mutable.ListBuffer[org.apache.spark.sql.execution.SparkPlan] <: Seq[org.apache.spark.sql.executionparkPlan]?
[INFO] [Info] : false
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/RapidsConf.scala:1408: type mismat;
 found   : Iterable[(String, String)]
 required: java.util.Map[String,String]
[INFO] [Info] : Iterable[(String, String)] <: java.util.Map[String,String]?
[INFO] [Info] : false
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/SortUtils.scala:240: type mismatch
 found   : scala.collection.mutable.ArrayBuffer[ai.rapids.cudf.Table]
 required: Seq[ai.rapids.cudf.Table]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/SortUtils.scala:247: ambiguous refence to overloaded definition,
both method withResource in trait Arm of type [T <: AutoCloseable, V](r: scala.collection.mutable.ArrayBuffer[T])(block: scala.colltion.mutable.ArrayBuffer[T] => V): V
and  method withResource in trait Arm of type [T <: AutoCloseable, V](r: Array[T])(block: Array[T] => V): V
match argument types (Nothing)
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/TypeChecks.scala:657: type mismatc
 found   : scala.collection.MapView[org.apache.spark.sql.types.DataType,scala.collection.immutable.Set[String]]
 required: Map[org.apache.spark.sql.types.DataType,Set[String]]
[INFO] [Info] : scala.collection.MapView[org.apache.spark.sql.types.DataType,scala.collection.immutable.Set[String]] <: Map[org.apae.spark.sql.types.DataType,Set[String]]?
[INFO] [Info] : false
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/TypeChecks.scala:1596: diverging ilicit expansion for type Ordering[(com.nvidia.spark.rapids.TypeEnum.Value, Map[com.nvidia.spark.rapids.ExpressionContext,Map[Stringom.nvidia.spark.rapids.SupportLevel]])]
starting with method orderingToOrdered in object Ordered
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/TypeChecks.scala:1700: diverging ilicit expansion for type Ordering[(com.nvidia.spark.rapids.TypeEnum.Value, Map[String,com.nvidia.spark.rapids.SupportLevel])]
starting with method orderingToOrdered in object Ordered
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/aggregate.scala:601: type mismatch
 found   : scala.collection.mutable.ArrayBuffer[ai.rapids.cudf.ColumnVector]
 required: Seq[ai.rapids.cudf.ColumnView]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/implicits.scala:209: type mismatch
 found   : Array[A]
 required: collection.SeqLike[A,Array[A]]
    (which expands to)  scala.collection.SeqOps[A,scala.collection.Seq,Array[A]]
[INFO] [Info] : Array[A] <: collection.SeqLike[A,Array[A]]?
[INFO] [Info] : false
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/shuffle/RapidsShuffleClient.scala:4: type mismatch;
 found   : scala.collection.mutable.ArrayBuffer[com.nvidia.spark.rapids.shuffle.PendingTransferRequest]
 required: Seq[com.nvidia.spark.rapids.shuffle.PendingTransferRequest]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/shuffle/RapidsShuffleServer.scala:4: type mismatch;
 found   : scala.collection.mutable.ArrayBuffer[com.nvidia.spark.rapids.shuffle.BufferSendState]
 required: Seq[com.nvidia.spark.rapids.shuffle.BufferSendState]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/shuffle/RapidsShuffleServer.scala:1: type mismatch;
 found   : scala.collection.mutable.ArrayBuffer[com.nvidia.spark.rapids.shuffle.BufferSendState]
 required: Seq[com.nvidia.spark.rapids.shuffle.BufferSendState]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/shuffle/RapidsShuffleServer.scala:7: type mismatch;
 found   : com.nvidia.spark.rapids.shuffle.Transaction => Unit
 required: com.nvidia.spark.rapids.shuffle.TransactionCallback
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/shuffle/WindowedBlockIterator.scal157: type mismatch;
 found   : scala.collection.mutable.ArrayBuffer[com.nvidia.spark.rapids.shuffle.BlockRange[T]]
 required: Seq[com.nvidia.spark.rapids.shuffle.BlockRange[T]]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/org/apache/spark/sql/execution/python/rapids/GpuAggregateIandasExec.scala:161: overloaded method apply with alternatives:
  (fields: Array[org.apache.spark.sql.types.StructField])org.apache.spark.sql.types.StructType <and>
  (fields: java.util.List[org.apache.spark.sql.types.StructField])org.apache.spark.sql.types.StructType <and>
  (fields: Seq[org.apache.spark.sql.types.StructField])org.apache.spark.sql.types.StructType
 cannot be applied to (scala.collection.mutable.ArrayBuffer[org.apache.spark.sql.types.StructField])
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/org/apache/spark/sql/execution/python/rapids/GpuAggregateIandasExec.scala:180: type mismatch;
 found   : scala.collection.mutable.ArrayBuffer[org.apache.spark.sql.catalyst.expressions.Expression]
 required: Seq[?]
Error occurred in an application involving default arguments.
[INFO] [Info] : scala.collection.mutable.ArrayBuffer[org.apache.spark.sql.catalyst.expressions.Expression] <: Seq[?]?
[INFO] [Info] : false
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/org/apache/spark/sql/rapids/OrcFiltersBase.scala:86: type smatch;
 found   : scala.collection.MapView[String,OrcFiltersBase.this.OrcPrimitiveField]
 required: Map[String,OrcFiltersBase.this.OrcPrimitiveField]
[INFO] [Info] : scala.collection.MapView[String,OrcFiltersBase.this.OrcPrimitiveField] <: Map[String,OrcFiltersBase.this.OrcPrimitiField]?
[INFO] [Info] : false
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/org/apache/spark/sql/rapids/collectionOperations.scala:73:ype mismatch;
 found   : scala.collection.mutable.ArrayBuffer[ai.rapids.cudf.ColumnVector]
 required: Seq[?]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/org/apache/spark/sql/rapids/execution/python/GpuArrowEvalPhonExec.scala:100: value safeMap is not a member of scala.collection.mutable.ArrayBuffer[com.nvidia.spark.rapids.SpillableColumnarBch]
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/org/apache/spark/sql/rapids/execution/python/GpuArrowEvalPhonExec.scala:563: overloaded method apply with alternatives:
  (fields: Array[org.apache.spark.sql.types.StructField])org.apache.spark.sql.types.StructType <and>
  (fields: java.util.List[org.apache.spark.sql.types.StructField])org.apache.spark.sql.types.StructType <and>
  (fields: Seq[org.apache.spark.sql.types.StructField])org.apache.spark.sql.types.StructType
 cannot be applied to (scala.collection.mutable.ArrayBuffer[org.apache.spark.sql.types.StructField])
Error occurred in an application involving default arguments.
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/org/apache/spark/sql/rapids/execution/python/GpuArrowEvalPhonExec.scala:567: type mismatch;
 found   : scala.collection.mutable.ArrayBuffer[org.apache.spark.sql.catalyst.expressions.Expression]
 required: Seq[?]
Error occurred in an application involving default arguments.
[INFO] [Info] : scala.collection.mutable.ArrayBuffer[org.apache.spark.sql.catalyst.expressions.Expression] <: Seq[?]?
[INFO] [Info] : false
[ERROR] [Error] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/org/apache/spark/sql/rapids/execution/python/GpuWindowInPaasExecBase.scala:512: type mismatch;
 found   : scala.collection.mutable.ArrayBuffer[org.apache.spark.sql.catalyst.expressions.Expression]
 required: Seq[?]
Error occurred in an application involving default arguments.
[INFO] [Info] : scala.collection.mutable.ArrayBuffer[org.apache.spark.sql.catalyst.expressions.Expression] <: Seq[?]?
[INFO] [Info] : false
[WARNING] [Warn] /home/tt/work.d/spark-rapids/sql-plugin/src/main/scala/com/nvidia/spark/rapids/GpuOverrides.scala:409: procedureyntax is deprecated: instead, add `: Unit` to explicitly declare `optimizedPlan`'s return type

[WARNING] 34 warnings found
[ERROR] 54 errors found
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 16.952 s
[INFO] Finished at: 2021-08-17T02:45:35+00:00
[INFO] Final Memory: 129M/3064M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal net.alchim31.maven:scala-maven-plugin:4.3.0:compile (scala-compile-first) on project rapids-4-spark-l_2.12: Execution scala-compile-first of goal net.alchim31.maven:scala-maven-plugin:4.3.0:compile failed. CompileFailed -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
tt@host:~/work.d/spark-rapids$

@NvTimLiu
Copy link
Collaborator

NvTimLiu commented Aug 17, 2021

There should be many scala 2.12/2.13 compatible errors in our spark-rapids source code.

@tgravescs @revans2 Could you please help to make spark-rapids PASS build against 2.13? So that I can set-up build/IT pipeline against scala-2.13? Thanks!

@jlowe
Copy link
Member

jlowe commented Aug 17, 2021

I've tried to build a SNAPSHOT version of scala-2.13 based spark-3.1.3 binaries, and ran it with our spark-rapids_2.12

This will never work. Scala is not backwards binary compatible between versions, which is why the Scala version appears by convention in the artifact names. The plugin must be built against the same Scala version Spark is using.

I also tried to build spark-rapids_2.13, our spark-rapids source code also have the similar scala SDK compatible issues

Yes, there's significant work to make the plugin source-compatible with both Scala 2.12 and Scala 2.13.

@tgravescs
Copy link
Collaborator

@sameerz should schedule this work.

@sameerz
Copy link
Collaborator

sameerz commented Nov 12, 2021

Moving to the backlog for now.

@nartal1
Copy link
Collaborator

nartal1 commented Dec 3, 2021

PR apache/spark@eb7adb1b00 updated minor version to .7 . So pom is updated to 2.13.7. Whenever this is prioritized, I think we have to make sure we compile with this version for Spark-3.3

@nartal1 nartal1 added the audit_3.3.0 Audit related tasks for 3.3.0 label Dec 3, 2021
@kalyansagi
Copy link

I am trying to run a simple scala app using spark. I am getting a similar errors as discussed above. See the error below.

WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
22/01/24 10:52:56 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/mutable/ArraySeq$ofRef
        at WordCountAssignment$.main(WordCountAssignment.scala:19)
        at WordCountAssignment.main(WordCountAssignment.scala)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)
        at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:955)
        at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:180)
        at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:203)
        at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:90)
        at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1043)
        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1052)
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.ClassNotFoundException: scala.collection.mutable.ArraySeq$ofRef
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
        ... 14 more

Any help to resolve my issue is highly appreciated!

@jlowe
Copy link
Member

jlowe commented Jan 24, 2022

@kalyansagi I assume you're trying to run with Scala 2.13? The RAPIDS Accelerator does not yet support Scala 2.13, and this issue is to track adding that support at some point in the future.

I also don't see any evidence of the RAPIDS Accelerator in the stacktrace -- are you just running a standard app with Apache Spark without the RAPIDS Accelerator? In any case, I would recommend compiling your app with Scala 2.12, as that is the Scala version supported by most (all?) Spark 3.x distributions at this point.

If compiling for Scala 2.12 does not solve the issue, please file a separate issue to discuss this, as we would like to leave this ticket focused on tracking the Scala 2.13 feature for the RAPIDS Accelerator.

@sameerz
Copy link
Collaborator

sameerz commented Apr 25, 2023

Related Spark migration to Scala 2.13: https://issues.apache.org/jira/browse/SPARK-25075

@NVnavkumar NVnavkumar self-assigned this May 16, 2023
@NVnavkumar NVnavkumar added the Spark 3.4+ Spark 3.4+ issues label May 16, 2023
@NVnavkumar
Copy link
Collaborator

Scala 2.13 will be the default (Scala 2.12 will still be available) in Spark 3.5.0 https://issues.apache.org/jira/browse/SPARK-43836

@gerashegalov
Copy link
Collaborator

The discussion on the mailing list moved it to Spark 4.0 https://lists.apache.org/thread/xz7x0nkjn1d13yl9on59lfttm6f0yd45

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
audit_3.2.0 audit_3.3.0 Audit related tasks for 3.3.0 feature request New feature or request Scala 2.13 Issues related to Scala 2.13 binaries Spark 3.2+ Spark 3.4+ Spark 3.4+ issues
Projects
None yet
Development

Successfully merging a pull request may close this issue.