Я продолжаю сталкиваться с ошибкой 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>()
Может кто-нибудь помочь мне с этим?
Спасибо !!!