public class ProjectedRow extends Object implements InternalRow
InternalRow
which provides a projected view of the underlying InternalRow
.
Projection includes both reducing the accessible fields and reordering them.
Note: This class supports only top-level projections, not nested projections.
InternalRow.FieldGetter
Modifier and Type | Field and Description |
---|---|
protected int[] |
indexMapping |
protected InternalRow |
row |
Modifier | Constructor and Description |
---|---|
protected |
ProjectedRow(int[] indexMapping) |
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object o) |
static ProjectedRow |
from(int[] projection)
Create an empty
ProjectedRow starting from a projection array. |
static ProjectedRow |
from(int[][] projection)
Like
from(int[]) , but throws IllegalArgumentException if the provided projection array contains nested projections, which are not supported by ProjectedRow . |
static ProjectedRow |
from(Projection projection)
Create an empty
ProjectedRow starting from a Projection . |
InternalArray |
getArray(int pos)
Returns the array value at the given position.
|
byte[] |
getBinary(int pos)
Returns the binary value at the given position.
|
boolean |
getBoolean(int pos)
Returns the boolean value at the given position.
|
byte |
getByte(int pos)
Returns the byte value at the given position.
|
Decimal |
getDecimal(int pos,
int precision,
int scale)
Returns the decimal value at the given position.
|
double |
getDouble(int pos)
Returns the double value at the given position.
|
int |
getFieldCount()
Returns the number of fields in this row.
|
float |
getFloat(int pos)
Returns the float value at the given position.
|
int |
getInt(int pos)
Returns the integer value at the given position.
|
long |
getLong(int pos)
Returns the long value at the given position.
|
InternalMap |
getMap(int pos)
Returns the map value at the given position.
|
InternalRow |
getRow(int pos,
int numFields)
Returns the row value at the given position.
|
RowKind |
getRowKind()
Returns the kind of change that this row describes in a changelog.
|
short |
getShort(int pos)
Returns the short value at the given position.
|
BinaryString |
getString(int pos)
Returns the string value at the given position.
|
Timestamp |
getTimestamp(int pos,
int precision)
Returns the timestamp value at the given position.
|
int |
hashCode() |
boolean |
isNullAt(int pos)
Returns true if the element is null at the given position.
|
ProjectedRow |
replaceRow(InternalRow row)
Replaces the underlying
InternalRow backing this ProjectedRow . |
void |
setRowKind(RowKind kind)
Sets the kind of change that this row describes in a changelog.
|
String |
toString() |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
createFieldGetter, getDataClass
protected final int[] indexMapping
protected InternalRow row
public ProjectedRow replaceRow(InternalRow row)
InternalRow
backing this ProjectedRow
.
This method replaces the row data in place and does not return a new object. This is done for performance reasons.
public int getFieldCount()
InternalRow
The number does not include RowKind
. It is kept separately.
getFieldCount
in interface InternalRow
public RowKind getRowKind()
InternalRow
getRowKind
in interface InternalRow
RowKind
public void setRowKind(RowKind kind)
InternalRow
setRowKind
in interface InternalRow
RowKind
public boolean isNullAt(int pos)
DataGetters
isNullAt
in interface DataGetters
public boolean getBoolean(int pos)
DataGetters
getBoolean
in interface DataGetters
public byte getByte(int pos)
DataGetters
getByte
in interface DataGetters
public short getShort(int pos)
DataGetters
getShort
in interface DataGetters
public int getInt(int pos)
DataGetters
getInt
in interface DataGetters
public long getLong(int pos)
DataGetters
getLong
in interface DataGetters
public float getFloat(int pos)
DataGetters
getFloat
in interface DataGetters
public double getDouble(int pos)
DataGetters
getDouble
in interface DataGetters
public BinaryString getString(int pos)
DataGetters
getString
in interface DataGetters
public Decimal getDecimal(int pos, int precision, int scale)
DataGetters
The precision and scale are required to determine whether the decimal value was stored in
a compact representation (see Decimal
).
getDecimal
in interface DataGetters
public Timestamp getTimestamp(int pos, int precision)
DataGetters
The precision is required to determine whether the timestamp value was stored in a compact
representation (see Timestamp
).
getTimestamp
in interface DataGetters
public byte[] getBinary(int pos)
DataGetters
getBinary
in interface DataGetters
public InternalArray getArray(int pos)
DataGetters
getArray
in interface DataGetters
public InternalMap getMap(int pos)
DataGetters
getMap
in interface DataGetters
public InternalRow getRow(int pos, int numFields)
DataGetters
The number of fields is required to correctly extract the row.
getRow
in interface DataGetters
public static ProjectedRow from(int[][] projection) throws IllegalArgumentException
from(int[])
, but throws IllegalArgumentException
if the provided projection
array contains nested projections, which are not supported by ProjectedRow
.
The array represents the mapping of the fields of the original DataType
, including
nested rows. For example, [[0, 2, 1], ...]
specifies to include the 2nd field of the
3rd field of the 1st field in the top-level row.
IllegalArgumentException
Projection
,
ProjectedRow
public static ProjectedRow from(int[] projection)
ProjectedRow
starting from a projection
array.
The array represents the mapping of the fields of the original DataType
. For
example, [0, 2, 1]
specifies to include in the following order the 1st field, the 3rd
field and the 2nd field of the row.
Projection
,
ProjectedRow
public static ProjectedRow from(Projection projection)
ProjectedRow
starting from a Projection
.
Throws IllegalStateException
if the provided projection
array contains
nested projections, which are not supported by ProjectedRow
.
Projection
,
ProjectedRow
Copyright © 2023–2024 The Apache Software Foundation. All rights reserved.