Thanks Pratyaksh,

I got your point, but as in the example I used s3 avro schema file to refer
all emerged schema, It is not working.
I didn't try HiveSync Tool for this. Is there any option to refer glue?


On Mon, Mar 16, 2020 at 12:56 PM Pratyaksh Sharma <[email protected]>
wrote:

> Hi Raghvendra,
>
> As mentioned in the FAQ, this error occurs when your schema has evolved in
> terms of deleting some field, in your case 'cop_amt'. Even if your current
> target schema has this field, the problem is occurring because some
> incoming record is not having this field. To fix this, you have the
> following options -
>
> 1. Make sure none of the fields get deleted.
> 2. Else have some default value for this field and send all your records
> with that default value
> 3. Try creating uber schema.
>
> By uber schema I mean to say, create a schema which has all the fields
> which were ever a part of your incoming records. If you are using
> HiveSyncTool along with DeltaStreamer, then hive metastore can be a good
> source of truth for getting all the fields ever ingested. Please let me
> know if this makes sense.
>
> On Sun, Mar 15, 2020 at 7:11 PM Raghvendra Dhar Dubey
> <[email protected]> wrote:
>
> > Thanks Pratyaksh,
> > But I am assigning target schema here as
> >
> >
> >
> hoodie.deltastreamer.schemaprovider.target.schema.file=s3://bucket/schema.avsc
> >
> > But it doesn’t help, as per troubleshooting guide it is asking to build
> > Uber schema and refer It as target schema, but I am not sure about Uber
> > schema could you please help me into this?
> >
> > Thanks
> > Raghvendra
> >
> > On Sun, 15 Mar 2020 at 6:08 PM, Pratyaksh Sharma <[email protected]>
> > wrote:
> >
> > > This might help - Caused by: org.apache.parquet.io
> > .InvalidRecordException:
> > > Parquet/Avro schema mismatch: Avro field 'col1' not found
> > > <
> > >
> >
> https://cwiki.apache.org/confluence/display/HUDI/Troubleshooting+Guide#TroubleshootingGuide-Causedby:org.apache.parquet.io.InvalidRecordException:Parquet/Avroschemamismatch:Avrofield'col1'notfound
> > > >
> > > .
> > >
> > > Please let us know in case of any more queries.
> > >
> > > On Sun, Mar 15, 2020 at 5:08 PM Raghvendra Dubey
> > > <[email protected]> wrote:
> > >
> > > > Hi Team,
> > > >
> > > >  I am reading parquet data from HudiDeltaStreamer and writing data
> into
> > > > Hudi Dataset.
> > > > s3 > EMR(Hudi DeltaStreamer) > S3(Hudi Dataset)
> > > >
> > > > I referred  avro schema as target schema through parameter
> > > >
> > > >
> > >
> >
> hoodie.deltastreamer.schemaprovider.target.schema.file=s3://bucket/schema.avsc
> > > >
> > > > Deltastreamer command like
> > > > spark-submit --class
> > > > org.apache.hudi.utilities.deltastreamer.HoodieDeltaStreamer
> --packages
> > > > org.apache.spark:spark-avro_2.11:2.4.4 --master yarn --deploy-mode
> > client
> > > >
> > >
> >
> ~/incubator-hudi/packaging/hudi-utilities-bundle/target/hudi-utilities-bundle_2.11-0.6.0-SNAPSHOT.jar
> > > > --table-type COPY_ON_WRITE --source-ordering-field action_date
> > > > --source-class org.apache.hudi.utilities.sources.ParquetDFSSource
> > > > --target-base-path s3://emr-spark-scripts/hudi_spark_test
> > --target-table
> > > > hudi_spark_test --transformer-class
> > > > org.apache.hudi.utilities.transform.AWSDmsTransformer --payload-class
> > > > org.apache.hudi.payload.AWSDmsAvroPayload --hoodie-conf
> > > >
> > >
> >
> hoodie.cleaner.policy=KEEP_LATEST_FILE_VERSIONS,hoodie.cleaner.fileversions.retained=1,hoodie.deltastreamer.schemaprovider.target.schema.file=s3://emr-spark-scripts/mongo_load_script/schema.avsc,hoodie.datasource.write.recordkey.field=wbn,hoodie.datasource.write.partitionpath.field=ad,hoodie.deltastreamer.source.dfs.root=s3://emr-spark-scripts/mongo_load_script/parquet-data/
> > > > --continuous
> > > >
> > > > but I  am getting issue of schema i.e
> > > > org.apache.parquet.io.InvalidRecordException: Parquet/Avro schema
> > > > mismatch: Avro field 'cop_amt' not found
> > > >         at
> > > >
> > >
> >
> org.apache.parquet.avro.AvroRecordConverter.getAvroField(AvroRecordConverter.java:225)
> > > >         at
> > > >
> > >
> >
> org.apache.parquet.avro.AvroRecordConverter.<init>(AvroRecordConverter.java:130)
> > > >         at
> > > >
> > >
> >
> org.apache.parquet.avro.AvroRecordConverter.<init>(AvroRecordConverter.java:95)
> > > >         at
> > > >
> > >
> >
> org.apache.parquet.avro.AvroRecordMaterializer.<init>(AvroRecordMaterializer.java:33)
> > > >         at
> > > >
> > >
> >
> org.apache.parquet.avro.AvroReadSupport.prepareForRead(AvroReadSupport.java:138)
> > > >         at
> > > >
> > >
> >
> org.apache.parquet.hadoop.InternalParquetRecordReader.initialize(InternalParquetRecordReader.java:183)
> > > >         at
> > > >
> > >
> >
> org.apache.parquet.hadoop.ParquetReader.initReader(ParquetReader.java:156)
> > > >         at
> > > > org.apache.parquet.hadoop.ParquetReader.read(ParquetReader.java:135)
> > > >
> > > > I have referred errored field into schema but still getting this
> issue.
> > > > Could you guys please help how can I refer schema file?
> > > >
> > > > Thanks
> > > > Raghvendra
> > > >
> > > >
> > > >
> > >
> >
>

Reply via email to