Запись и чтение необработанных байтовых массивов в Spark-using Sequencefile файла последовательности
Как вы пишите RDD[Array[Byte]]
в файл с помощью Apache Spark и прочитать его снова?
1 ответов
общие проблемы, похоже, получают странное не может привести исключение из BytesWritable для NullWritable. Другая распространенная проблема-BytesWritable getBytes
- это совершенно бессмысленная куча ерунды, которая вообще не получает байтов. Что?!--1--> получает ваши байты, чем добавляет тонну нулей в конце! Вы должны использовать copyBytes
val rdd: RDD[Array[Byte]] = ???
// To write
rdd.map(bytesArray => (NullWritable.get(), new BytesWritable(bytesArray)))
.saveAsSequenceFile("/output/path", codecOpt)
// To read
val rdd: RDD[Array[Byte]] = sc.sequenceFile[NullWritable, BytesWritable]("/input/path")
.map(_._2.copyBytes())