Как исправить ошибку несовместимого типа в Java для KafkaWritable и Object - PullRequest
0 голосов
/ 07 апреля 2019

Я запускаю скрипт свиньи, который использует класс Java. и во время выполнения сценария pig я получаю сообщение об ошибке: 1. несовместимые типы: org.apache.hadoop.hive.kafka.KafkaWritable нельзя преобразовать в org.apache.hadoop.io.BytesWritable 2. несовместимые типы: java.lang.Object не может быть преобразован в org.apache.avro.generic.GenericRecord

public Tuple getNext() throws IOException {
    try {
        if (((KafkaRecordReader) this.reader).nextKeyValue()) {
            BytesWritable b = ((KafkaRecordReader) this.reader).getCurrentValue();
            DataByteArray d = new DataByteArray(b.getBytes());
            if (this.avroSchema == null) {
                Tuple t = this.tupleFactory.newTuple(1);
                t.set(0, d);
                return t;
            }

            List<Field> fields = this.avroSchema.getFields();
            Tuple t = this.tupleFactory.newTuple();
            GenericRecord record = this.fromBytes(b.getBytes());
            Iterator var6 = fields.iterator();

            while (var6.hasNext()) {
                Field f = (Field) var6.next();
                t.append(record.get(f.name()).toString());
            }

            return t;
        }
    } catch (InterruptedException var8) {
        var8.printStackTrace();
    }

    return null;
}
...