ssomuah opened a new issue #1836:
URL: https://github.com/apache/hudi/issues/1836
**Describe the problem you faced**
It appears that I'm unable to instantiate my custom
"hoodie.datasource.write.payload.class" I get an exception saying
Caused by: java.lang.NoSuchMethodException:
com.myCustompayloadClass.<init>(org.apache.hudi.common.util.Option)
The constructor for my class is
```
class myCustompayloadClass(rec: GenericRecord, oVal: Comparable[_])
extends BaseAvroPayload(rec, oVal) with
HoodieRecordPayload[myCustompayloadClass] {
```
**To Reproduce**
Steps to reproduce the behavior:
1.Spark-submit an application that uses a MOR table and custom payload class
**Expected behavior**
Application should be compact MOR table
**Environment Description**
* Hudi version : Master @ 3b9a30528bd6a6369181702303f3384162b04a7f
https://github.com/apache/hudi/tree/3b9a30528bd6a6369181702303f3384162b04a7f
* Spark version :2.4.4
* Hive version : N/A
* Hadoop version :2.7.3
* Storage (HDFS/S3/GCS..) : ABFSS
* Running on Docker? (yes/no) :yes
**Additional context**
It's running on Databricks.
We build a fat jar with hudi-spark included and use it as the argument to
the spark-submit.
**Stacktrace**
```Add the stacktrace of the error.```
Driver Log
org.apache.hudi.exception.HoodieIOException: IOException when reading log
file
at
org.apache.hudi.common.table.log.AbstractHoodieLogRecordScanner.scan(AbstractHoodieLogRecordScanner.java:245)
at
org.apache.hudi.common.table.log.HoodieMergedLogRecordScanner.<init>(HoodieMergedLogRecordScanner.java:81)
at
org.apache.hudi.table.action.compact.HoodieMergeOnReadTableCompactor.compact(HoodieMergeOnReadTableCompactor.java:127)
at
org.apache.hudi.table.action.compact.HoodieMergeOnReadTableCompactor.lambda$compact$644ebad7$1(HoodieMergeOnReadTableCompactor.java:98)
at
org.apache.spark.api.java.JavaPairRDD$$anonfun$toScalaFunction$1.apply(JavaPairRDD.scala:1043)
Executor Log
20/07/15 13:11:13 ERROR AbstractHoodieLogRecordScanner: Got exception when
reading log file
org.apache.hudi.exception.HoodieException: Unable to instantiate payload
class
at
org.apache.hudi.common.util.ReflectionUtils.loadPayload(ReflectionUtils.java:78)
at
org.apache.hudi.common.util.SpillableMapUtils.convertToHoodieRecordPayload(SpillableMapUtils.java:116)
at
org.apache.hudi.common.table.log.AbstractHoodieLogRecordScanner.processDataBlock(AbstractHoodieLogRecordScanner.java:277)
at
org.apache.hudi.common.table.log.AbstractHoodieLogRecordScanner.processQueuedBlocksForInstant(AbstractHoodieLogRecordScanner.java:306)
at
org.apache.hudi.common.table.log.AbstractHoodieLogRecordScanner.scan(AbstractHoodieLogRecordScanner.java:239)
at
org.apache.hudi.common.table.log.HoodieMergedLogRecordScanner.<init>(HoodieMergedLogRecordScanner.java:81)
at
org.apache.hudi.table.action.compact.HoodieMergeOnReadTableCompactor.compact(HoodieMergeOnReadTableCompactor.java:127)
at
org.apache.hudi.table.action.compact.HoodieMergeOnReadTableCompactor.lambda$compact$644ebad7$1(HoodieMergeOnReadTableCompactor.java:98)
at
org.apache.spark.api.java.JavaPairRDD$$anonfun$toScalaFunction$1.apply(JavaPairRDD.scala:1043)
at scala.collection.Iterator$$anon$11.next(Iterator.scala:410)
at scala.collection.Iterator$$anon$12.nextCur(Iterator.scala:435)
at scala.collection.Iterator$$anon$12.hasNext(Iterator.scala:441)
at
org.apache.spark.storage.memory.MemoryStore.putIterator(MemoryStore.scala:221)
at
org.apache.spark.storage.memory.MemoryStore.putIteratorAsBytes(MemoryStore.scala:349)
at
org.apache.spark.storage.BlockManager$$anonfun$doPutIterator$1.apply(BlockManager.scala:1252)
at
org.apache.spark.storage.BlockManager$$anonfun$doPutIterator$1.apply(BlockManager.scala:1226)
at
org.apache.spark.storage.BlockManager.org$apache$spark$storage$BlockManager$$doPut(BlockManager.scala:1161)
at
org.apache.spark.storage.BlockManager.doPutIterator(BlockManager.scala:1226)
at
org.apache.spark.storage.BlockManager.getOrElseUpdate(BlockManager.scala:1045)
at org.apache.spark.rdd.RDD.getOrCompute(RDD.scala:364)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:315)
at
org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:60)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:353)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:317)
at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:90)
at org.apache.spark.scheduler.Task.doRunTask(Task.scala:140)
at org.apache.spark.scheduler.Task.run(Task.scala:113)
at
org.apache.spark.executor.Executor$TaskRunner$$anonfun$13.apply(Executor.scala:537)
at org.apache.spark.util.Utils$.tryWithSafeFinally(Utils.scala:1541)
at
org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:543)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoSuchMethodException:
com.myCustompayloadClass.<init>(org.apache.hudi.common.util.Option)
at java.lang.Class.getConstructor0(Class.java:3082)
at java.lang.Class.getConstructor(Class.java:1825)
at
org.apache.hudi.common.util.ReflectionUtils.loadPayload(ReflectionUtils.java:76)
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]