This is an automated email from the ASF dual-hosted git repository. xushiyan pushed a commit to branch rc3-patched-for-test in repository https://gitbox.apache.org/repos/asf/hudi.git
commit 4bbdf4a82633aeadc39bea9e3abf71d4cee972e4 Author: Alexey Kudinkin <[email protected]> AuthorDate: Wed Apr 20 13:14:40 2022 -0700 Re-use `ReflectionUtils` --- .../datasources/parquet/Spark312HoodieParquetFileFormat.scala | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/hudi-spark-datasource/hudi-spark3.1.x/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/Spark312HoodieParquetFileFormat.scala b/hudi-spark-datasource/hudi-spark3.1.x/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/Spark312HoodieParquetFileFormat.scala index 769373866f..6061edd522 100644 --- a/hudi-spark-datasource/hudi-spark3.1.x/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/Spark312HoodieParquetFileFormat.scala +++ b/hudi-spark-datasource/hudi-spark3.1.x/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/Spark312HoodieParquetFileFormat.scala @@ -25,7 +25,7 @@ import org.apache.hudi.HoodieSparkUtils import org.apache.hudi.client.utils.SparkInternalSchemaConverter import org.apache.hudi.common.fs.FSUtils import org.apache.hudi.common.util.StringUtils.isNullOrEmpty -import org.apache.hudi.common.util.{InternalSchemaCache, StringUtils} +import org.apache.hudi.common.util.{InternalSchemaCache, ReflectionUtils, StringUtils} import org.apache.hudi.common.util.collection.Pair import org.apache.hudi.internal.schema.InternalSchema import org.apache.hudi.internal.schema.action.InternalSchemaMerger @@ -343,10 +343,9 @@ object Spark312HoodieParquetFileFormat { } } - private def createParquetFilters(arg: Any*): ParquetFilters = { - val clazz = Class.forName(PARQUET_FILTERS_CLASS_NAME, true, Thread.currentThread().getContextClassLoader) - val ctor = clazz.getConstructors.head - ctor.newInstance(arg.map(_.asInstanceOf[AnyRef]): _*).asInstanceOf[ParquetFilters] + private def createParquetFilters(args: Any*): ParquetFilters = { + val instance = ReflectionUtils.loadClass(PARQUET_FILTERS_CLASS_NAME, args.map(_.asInstanceOf[AnyRef]): _*) + instance.asInstanceOf[ParquetFilters] } private def rebuildFilterFromParquet(oldFilter: Filter, fileSchema: InternalSchema, querySchema: InternalSchema): Filter = {
