不可序列化函数

efzxgjgh  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(244)

因此,我的任务是编写一个代码,将rdd数据Map到共享内存:

data: RDD[Vector]) // parametr to function

// local variables
val file: RandomAccessFile = new RandomAccessFile("/tmp/test.txt", "rw");
val out: MappedByteBuffer = file.getChannel().map(FileChannel.MapMode.READ_WRITE, 0, 60000);

data.foreach(a => {
      val arr = a.toArray; // this is type Array[Double]
      val o: MappedByteBuffer = out;
      val bbuf = java.nio.ByteBuffer.allocate(8*arr.length) // represent array of double as byte buffer
      bbuf.asDoubleBuffer.put(java.nio.DoubleBuffer.wrap(arr)) // add to bytebuffer
      o.put(bbuf);
    });

现在,问题是bytebuffer是不可序列化的,我不知道如何序列化它。我可以尝试一些不同的方法将双数组附加到缓冲区中,但只要函数是不可序列化的,我就会不断出错。我怀疑.put()在第一个问题解决后也会产生错误。我该怎么做呢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题