code: public final SplitReadStreamResponse splitReadStream(Stream originalStream) {
      SplitReadStreamRequest request =
          SplitReadStreamRequest.newBuilder().setOriginalStream(originalStream).build();
      return splitReadStream(request);
    }
docs: Splits a given read stream into two Streams. These streams are referred to as the primary and
  the residual of the split. The original stream can still be read from in the same manner as
  before. Both of the returned streams can also be read from, and the total rows return by both
  child streams will be the same as the rows read from the original stream.
  
  <p>Moreover, the two child streams will be allocated back to back in the original Stream.
  Concretely, it is guaranteed that for streams Original, Primary, and Residual, that
  Original[0-j] = Primary[0-j] and Original[j-n] = Residual[0-m] once the streams have been read
  to completion.
  
  <p>This method is guaranteed to be idempotent.
  
  <p>Sample code:
  
  <pre><code>
  try (BigQueryStorageClient bigQueryStorageClient = BigQueryStorageClient.create()) {
  Stream originalStream = Stream.newBuilder().build();
  SplitReadStreamResponse response = bigQueryStorageClient.splitReadStream(originalStream);
  }
  </code></pre>
  
  @param originalStream Stream to split.
  @throws com.google.api.gax.rpc.ApiException if the remote call fails