diff --git a/jvm-packages/pom.xml b/jvm-packages/pom.xml index 6d4288b9a..f363122cb 100644 --- a/jvm-packages/pom.xml +++ b/jvm-packages/pom.xml @@ -34,15 +34,15 @@ 1.8 1.8 1.8.3 - 3.0.3 + 3.1.1 2.12.8 2.12 3.3.4 5 OFF OFF - 21.08.2 - 21.08.0 + 22.12.0 + 22.12.0 cuda11 diff --git a/jvm-packages/xgboost4j-spark-gpu/src/main/scala/ml/dmlc/xgboost4j/scala/rapids/spark/GpuUtils.scala b/jvm-packages/xgboost4j-spark-gpu/src/main/scala/ml/dmlc/xgboost4j/scala/rapids/spark/GpuUtils.scala index f5876fded..c88aefa4e 100644 --- a/jvm-packages/xgboost4j-spark-gpu/src/main/scala/ml/dmlc/xgboost4j/scala/rapids/spark/GpuUtils.scala +++ b/jvm-packages/xgboost4j-spark-gpu/src/main/scala/ml/dmlc/xgboost4j/scala/rapids/spark/GpuUtils.scala @@ -17,7 +17,7 @@ package ml.dmlc.xgboost4j.scala.rapids.spark import ai.rapids.cudf.Table -import com.nvidia.spark.rapids.{ColumnarRdd, GpuColumnVector} +import com.nvidia.spark.rapids.{ColumnarRdd, GpuColumnVectorUtils} import ml.dmlc.xgboost4j.scala.spark.util.Utils import org.apache.spark.rdd.RDD @@ -31,16 +31,7 @@ private[spark] object GpuUtils { def extractBatchToHost(table: Table, types: Array[DataType]): Array[ColumnVector] = { // spark-rapids has shimmed the GpuColumnVector from 22.10 - try { - val clazz = Utils.classForName("com.nvidia.spark.rapids.GpuColumnVectorUtils") - clazz.getDeclaredMethod("extractHostColumns", classOf[Table], classOf[Array[DataType]]) - .invoke(null, table, types).asInstanceOf[Array[ColumnVector]] - } catch { - case _: ClassNotFoundException => - // If it's older version, use the GpuColumnVector - GpuColumnVector.extractColumns(table, types).map(_.copyToHost()) - case e: Throwable => throw e - } + GpuColumnVectorUtils.extractHostColumns(table, types) } def toColumnarRdd(df: DataFrame): RDD[Table] = ColumnarRdd(df) diff --git a/jvm-packages/xgboost4j-spark-gpu/src/test/scala/ml/dmlc/xgboost4j/scala/rapids/spark/GpuTestSuite.scala b/jvm-packages/xgboost4j-spark-gpu/src/test/scala/ml/dmlc/xgboost4j/scala/rapids/spark/GpuTestSuite.scala index a8d7a81ed..175e00b39 100644 --- a/jvm-packages/xgboost4j-spark-gpu/src/test/scala/ml/dmlc/xgboost4j/scala/rapids/spark/GpuTestSuite.scala +++ b/jvm-packages/xgboost4j-spark-gpu/src/test/scala/ml/dmlc/xgboost4j/scala/rapids/spark/GpuTestSuite.scala @@ -1,5 +1,5 @@ /* - Copyright (c) 2021 by Contributors + Copyright (c) 2021-2023 by Contributors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -22,11 +22,10 @@ import java.util.{Locale, TimeZone} import org.scalatest.{BeforeAndAfterAll, FunSuite} -import org.apache.spark.SparkConf +import org.apache.spark.{GpuTestUtils, SparkConf} import org.apache.spark.internal.Logging import org.apache.spark.network.util.JavaUtils import org.apache.spark.sql.{Row, SparkSession} -import org.apache.spark.sql.rapids.execution.TrampolineUtil trait GpuTestSuite extends FunSuite with TmpFolderSuite { import SparkSessionHolder.withSparkSession @@ -232,7 +231,7 @@ object SparkSessionHolder extends Logging { } private def createSparkSession(): SparkSession = { - TrampolineUtil.cleanupAnyExistingSession() + GpuTestUtils.cleanupAnyExistingSession() // Timezone is fixed to UTC to allow timestamps to work by default TimeZone.setDefault(TimeZone.getTimeZone("UTC")) diff --git a/jvm-packages/xgboost4j-spark-gpu/src/test/scala/org/apache/spark/GpuTestUtils.scala b/jvm-packages/xgboost4j-spark-gpu/src/test/scala/org/apache/spark/GpuTestUtils.scala new file mode 100644 index 000000000..a8d7957bf --- /dev/null +++ b/jvm-packages/xgboost4j-spark-gpu/src/test/scala/org/apache/spark/GpuTestUtils.scala @@ -0,0 +1,27 @@ +/* + Copyright (c) 2023 by Contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + */ + +package org.apache.spark + +import org.apache.spark.sql.SparkSession + +object GpuTestUtils { + + def cleanupAnyExistingSession(): Unit = { + SparkSession.cleanupAnyExistingSession() + } + +} diff --git a/jvm-packages/xgboost4j-spark/src/main/scala/org/apache/spark/ml/util/XGBoostSchemaUtils.scala b/jvm-packages/xgboost4j-spark/src/main/scala/org/apache/spark/ml/util/XGBoostSchemaUtils.scala index 8765d39f3..c013cfe66 100644 --- a/jvm-packages/xgboost4j-spark/src/main/scala/org/apache/spark/ml/util/XGBoostSchemaUtils.scala +++ b/jvm-packages/xgboost4j-spark/src/main/scala/org/apache/spark/ml/util/XGBoostSchemaUtils.scala @@ -1,5 +1,5 @@ /* - Copyright (c) 2022 by Contributors + Copyright (c) 2022-2023 by Contributors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -18,7 +18,6 @@ package org.apache.spark.ml.util import org.apache.spark.sql.types.{BooleanType, DataType, NumericType, StructType} import org.apache.spark.ml.linalg.VectorUDT -import org.apache.spark.ml.util.SchemaUtils object XGBoostSchemaUtils { diff --git a/tests/buildkite/conftest.sh b/tests/buildkite/conftest.sh index 30ef4aeab..8e315c9cd 100755 --- a/tests/buildkite/conftest.sh +++ b/tests/buildkite/conftest.sh @@ -24,7 +24,7 @@ set -x CUDA_VERSION=11.0.3 RAPIDS_VERSION=22.10 -SPARK_VERSION=3.0.1 +SPARK_VERSION=3.1.1 JDK_VERSION=8 if [[ -z ${BUILDKITE:-} ]]