0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 package test.org.apache.spark.sql.connector;
0019
0020 import org.apache.spark.sql.catalyst.InternalRow;
0021 import org.apache.spark.sql.catalyst.expressions.GenericInternalRow;
0022 import org.apache.spark.sql.connector.read.InputPartition;
0023 import org.apache.spark.sql.connector.read.PartitionReader;
0024 import org.apache.spark.sql.connector.read.PartitionReaderFactory;
0025
0026 class JavaSimpleReaderFactory implements PartitionReaderFactory {
0027
0028 @Override
0029 public PartitionReader<InternalRow> createReader(InputPartition partition) {
0030 JavaRangeInputPartition p = (JavaRangeInputPartition) partition;
0031 return new PartitionReader<InternalRow>() {
0032 private int current = p.start - 1;
0033
0034 @Override
0035 public boolean next() {
0036 current += 1;
0037 return current < p.end;
0038 }
0039
0040 @Override
0041 public InternalRow get() {
0042 return new GenericInternalRow(new Object[] {current, -current});
0043 }
0044
0045 @Override
0046 public void close() {
0047 }
0048 };
0049 }
0050 }