java.lang.IllegalArgumentException: BigNumeric precision is too wide (76), Spark can only handle decimal types with max precision of 38
at com.google.cloud.spark.bigquery.SchemaConverters.getStandardDataType(SchemaConverters.java:385)
at com.google.cloud.spark.bigquery.SchemaConverters.lambda$getDataType$3(SchemaConverters.java:340)
at java.base/java.util.Optional.orElseGet(Optional.java:369)
at com.google.cloud.spark.bigquery.SchemaConverters.getDataType(SchemaConverters.java:340)
at com.google.cloud.spark.bigquery.SchemaConverters.convert(SchemaConverters.java:286)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at com.google.cloud.spark.bigquery.SchemaConverters.toSpark(SchemaConverters.java:69)
at com.google.cloud.spark.bigquery.v2.Spark3Util.createBigQueryTableInstance(Spark3Util.java:53)
at com.google.cloud.spark.bigquery.v2.Spark34BigQueryTableProvider.getBigQueryTableInternal(Spark34BigQueryTableProvider.java:33)
at com.google.cloud.spark.bigquery.v2.Spark31BigQueryTableProvider.inferSchema(Spark31BigQueryTableProvider.java:40)
at org.apache.spark.sql.execution.datasources.v2.DataSourceV2Utils$.getTableFromProvider(DataSourceV2Utils.scala:90)
at org.apache.spark.sql.DataFrameWriter.getTable$1(DataFrameWriter.scala:284)
at org.apache.spark.sql.DataFrameWriter.saveInternal(DataFrameWriter.scala:300)
at org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:251)
at com.lloydsbanking.commons.client.BQClient.writeDataWithPartitioning(BQClient.java:178)
at com.lloydsbanking.ingestion.handler.SaveDataToODPHandler.processStep(SaveDataToODPHandler.java:75)
at com.lloydsbanking.ingestion.handler.ExecutionHandlerExecutor.execute(ExecutionHandlerExecutor.java:19)
at com.lloydsbanking.ingestion.processor.BatchJobProcessor.lambda$execute$0(BatchJobProcessor.java:69)
at java.base/java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:104)
at java.base/java.util.stream.IntPipeline$Head.forEach(IntPipeline.java:593)
at com.lloydsbanking.ingestion.processor.BatchJobProcessor.execute(BatchJobProcessor.java:38)
at com.lloydsbanking.ingestion.job.BaseJob.main(BaseJob.java:47)
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:1216)
at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:195)
at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:218)
at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:92)
at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1314)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1323)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
@davidrabinowitz I think its trying to pull BigQuery table schema before write to table and its throwing this error this I am getting only when executed from dataproc and not from my local system
java.lang.IllegalArgumentException: BigNumeric precision is too wide (76), Spark can only handle decimal types with max precision of 38
at com.google.cloud.spark.bigquery.SchemaConverters.getStandardDataType(SchemaConverters.java:385)
at com.google.cloud.spark.bigquery.SchemaConverters.lambda$getDataType$3(SchemaConverters.java:340)
at java.base/java.util.Optional.orElseGet(Optional.java:369)
at com.google.cloud.spark.bigquery.SchemaConverters.getDataType(SchemaConverters.java:340)
at com.google.cloud.spark.bigquery.SchemaConverters.convert(SchemaConverters.java:286)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at com.google.cloud.spark.bigquery.SchemaConverters.toSpark(SchemaConverters.java:69)
at com.google.cloud.spark.bigquery.v2.Spark3Util.createBigQueryTableInstance(Spark3Util.java:53)
at com.google.cloud.spark.bigquery.v2.Spark34BigQueryTableProvider.getBigQueryTableInternal(Spark34BigQueryTableProvider.java:33)
at com.google.cloud.spark.bigquery.v2.Spark31BigQueryTableProvider.inferSchema(Spark31BigQueryTableProvider.java:40)
at org.apache.spark.sql.execution.datasources.v2.DataSourceV2Utils$.getTableFromProvider(DataSourceV2Utils.scala:90)
at org.apache.spark.sql.DataFrameWriter.getTable$1(DataFrameWriter.scala:284)
at org.apache.spark.sql.DataFrameWriter.saveInternal(DataFrameWriter.scala:300)
at org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:251)
at com.lloydsbanking.commons.client.BQClient.writeDataWithPartitioning(BQClient.java:178)
at com.lloydsbanking.ingestion.handler.SaveDataToODPHandler.processStep(SaveDataToODPHandler.java:75)
at com.lloydsbanking.ingestion.handler.ExecutionHandlerExecutor.execute(ExecutionHandlerExecutor.java:19)
at com.lloydsbanking.ingestion.processor.BatchJobProcessor.lambda$execute$0(BatchJobProcessor.java:69)
at java.base/java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:104)
at java.base/java.util.stream.IntPipeline$Head.forEach(IntPipeline.java:593)
at com.lloydsbanking.ingestion.processor.BatchJobProcessor.execute(BatchJobProcessor.java:38)
at com.lloydsbanking.ingestion.job.BaseJob.main(BaseJob.java:47)
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:1216)
at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:195)
at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:218)
at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:92)
at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1314)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1323)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
@davidrabinowitz I think its trying to pull BigQuery table schema before write to table and its throwing this error this I am getting only when executed from dataproc and not from my local system