спарк-загрузка в последовательных data-java.lang.NoSuchMethodException: org.apache.hadoop.io.ArrayWritable. <init>() - PullRequest
0 голосов
/ 28 апреля 2019

Я продолжаю сталкиваться с ошибкой java.lang.NoSuchMethodException: org.apache.hadoop.io.ArrayWritable.<init>(), хотя я создал TextArrayWritable для ее реализации

У меня есть набор данных, каждая запись которого имеет вид: ((a, b, c), (д, д, е, ж)).Они являются кортежами в pyspark и сохранены в последовательные файлы следующим образом:

output.saveAsSequenceFile(
        path=os.path.join(output_path, 'date=%s' % date),
        compressionCodecClass='org.apache.hadoop.io.compress.SnappyCodec'
    )

Теперь я хочу загрузить их в Java, сказав

JavaPairRDD<TextArrayWritable,TextArrayWritable> distFile = sc.sequenceFile(s3inputPath.toString(), TextArrayWritable.class, TextArrayWritable.class);

где TextArrayWritable наследует ArrayWritable, см. Ниже:

public static class TextArrayWritable extends ArrayWritable {
        public TextArrayWritable() {
            super(Text.class);
        }

        public TextArrayWritable(String[] strings) {
            super(Text.class);
            Text[] texts = new Text[strings.length];
            for (int i = 0; i < strings.length; i++) {
                texts[i] = new Text(strings[i]);
            }
            set(texts);
        }
    }

, к сожалению, я столкнулся с ошибкой, говоря: java.lang.NoSuchMethodException: org.apache.hadoop.io.ArrayWritable.<init>()

Может кто-нибудь помочь мне с этим?

Спасибо !!!

...