Class IcebergArrowColumnVector
java.lang.Object
org.apache.spark.sql.vectorized.ColumnVector
org.apache.iceberg.spark.data.vectorized.IcebergArrowColumnVector
- All Implemented Interfaces:
AutoCloseable
- Direct Known Subclasses:
ColumnVectorWithFilter
public class IcebergArrowColumnVector
extends org.apache.spark.sql.vectorized.ColumnVector
Implementation of Spark's
ColumnVector interface. The code for this class is heavily
inspired from Spark's ArrowColumnVector The main difference is in how nullability checks
are made in this class by relying on NullabilityHolder instead of the validity vector in
the Arrow vector.-
Field Summary
Fields inherited from class org.apache.spark.sql.vectorized.ColumnVector
type -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected ArrowVectorAccessor<org.apache.spark.sql.types.Decimal,org.apache.spark.unsafe.types.UTF8String, org.apache.spark.sql.vectorized.ColumnarArray, org.apache.spark.sql.vectorized.ArrowColumnVector> accessor()voidclose()org.apache.spark.sql.vectorized.ColumnarArraygetArray(int rowId) byte[]getBinary(int rowId) booleangetBoolean(int rowId) bytegetByte(int rowId) org.apache.spark.sql.vectorized.ArrowColumnVectorgetChild(int ordinal) org.apache.spark.sql.types.DecimalgetDecimal(int rowId, int precision, int scale) doublegetDouble(int rowId) floatgetFloat(int rowId) intgetInt(int rowId) longgetLong(int rowId) org.apache.spark.sql.vectorized.ColumnarMapgetMap(int rowId) shortgetShort(int rowId) org.apache.spark.unsafe.types.UTF8StringgetUTF8String(int rowId) booleanhasNull()booleanisNullAt(int rowId) protected NullabilityHolderintnumNulls()ArrowVectorAccessor<org.apache.spark.sql.types.Decimal,org.apache.spark.unsafe.types.UTF8String, org.apache.spark.sql.vectorized.ColumnarArray, org.apache.spark.sql.vectorized.ArrowColumnVector> Methods inherited from class org.apache.spark.sql.vectorized.ColumnVector
dataType, getBooleans, getBytes, getDoubles, getFloats, getInterval, getInts, getLongs, getShorts, getStruct
-
Constructor Details
-
IcebergArrowColumnVector
-
-
Method Details
-
accessor
protected ArrowVectorAccessor<org.apache.spark.sql.types.Decimal,org.apache.spark.unsafe.types.UTF8String, accessor()org.apache.spark.sql.vectorized.ColumnarArray, org.apache.spark.sql.vectorized.ArrowColumnVector> -
nullabilityHolder
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein classorg.apache.spark.sql.vectorized.ColumnVector
-
hasNull
public boolean hasNull()- Specified by:
hasNullin classorg.apache.spark.sql.vectorized.ColumnVector
-
numNulls
public int numNulls()- Specified by:
numNullsin classorg.apache.spark.sql.vectorized.ColumnVector
-
isNullAt
public boolean isNullAt(int rowId) - Specified by:
isNullAtin classorg.apache.spark.sql.vectorized.ColumnVector
-
getBoolean
public boolean getBoolean(int rowId) - Specified by:
getBooleanin classorg.apache.spark.sql.vectorized.ColumnVector
-
getByte
public byte getByte(int rowId) - Specified by:
getBytein classorg.apache.spark.sql.vectorized.ColumnVector
-
getShort
public short getShort(int rowId) - Specified by:
getShortin classorg.apache.spark.sql.vectorized.ColumnVector
-
getInt
public int getInt(int rowId) - Specified by:
getIntin classorg.apache.spark.sql.vectorized.ColumnVector
-
getLong
public long getLong(int rowId) - Specified by:
getLongin classorg.apache.spark.sql.vectorized.ColumnVector
-
getFloat
public float getFloat(int rowId) - Specified by:
getFloatin classorg.apache.spark.sql.vectorized.ColumnVector
-
getDouble
public double getDouble(int rowId) - Specified by:
getDoublein classorg.apache.spark.sql.vectorized.ColumnVector
-
getArray
public org.apache.spark.sql.vectorized.ColumnarArray getArray(int rowId) - Specified by:
getArrayin classorg.apache.spark.sql.vectorized.ColumnVector
-
getMap
public org.apache.spark.sql.vectorized.ColumnarMap getMap(int rowId) - Specified by:
getMapin classorg.apache.spark.sql.vectorized.ColumnVector
-
getDecimal
public org.apache.spark.sql.types.Decimal getDecimal(int rowId, int precision, int scale) - Specified by:
getDecimalin classorg.apache.spark.sql.vectorized.ColumnVector
-
getUTF8String
public org.apache.spark.unsafe.types.UTF8String getUTF8String(int rowId) - Specified by:
getUTF8Stringin classorg.apache.spark.sql.vectorized.ColumnVector
-
getBinary
public byte[] getBinary(int rowId) - Specified by:
getBinaryin classorg.apache.spark.sql.vectorized.ColumnVector
-
getChild
public org.apache.spark.sql.vectorized.ArrowColumnVector getChild(int ordinal) - Specified by:
getChildin classorg.apache.spark.sql.vectorized.ColumnVector
-
vectorAccessor
public ArrowVectorAccessor<org.apache.spark.sql.types.Decimal,org.apache.spark.unsafe.types.UTF8String, vectorAccessor()org.apache.spark.sql.vectorized.ColumnarArray, org.apache.spark.sql.vectorized.ArrowColumnVector>
-