spark core 2.0 RedirectableOutputStream

来源:互联网 发布:java模拟http下载文件 编辑:程序博客网 时间:2024/05/21 07:48

RedirectableOutputStream把一个输出流重新定向为另一个输出流。使用方式如下:

/** * A wrapper which allows an open [[OutputStream]] to be redirected to a different sink. */private[storage] class RedirectableOutputStream extends OutputStream {  private[this] var os: OutputStream = _  def setOutputStream(s: OutputStream): Unit = { os = s }  override def write(b: Int): Unit = os.write(b)  override def write(b: Array[Byte]): Unit = os.write(b)  override def write(b: Array[Byte], off: Int, len: Int): Unit = os.write(b, off, len)  override def flush(): Unit = os.flush()  override def close(): Unit = os.close()}

    val redirectableStream = new RedirectableOutputStream    val bbos = new ChunkedByteBufferOutputStream(initialMemoryThreshold.toInt, allocator)    redirectableStream.setOutputStream(bbos)    val serializationStream: SerializationStream = {      val ser = serializerManager.getSerializer(classTag).newInstance()      ser.serializeStream(serializerManager.wrapForCompression(blockId, redirectableStream))    }


0 0
原创粉丝点击