public class ParquetGroupScan extends AbstractFileGroupScan
| Modifier and Type | Class and Description |
|---|---|
static class |
ParquetGroupScan.RowGroupInfo |
INIT_ALLOCATION, initialAllocation, MAX_ALLOCATION, maxAllocationALL_COLUMNS, NO_COLUMN_STATS| Constructor and Description |
|---|
ParquetGroupScan(String userName,
FileSelection selection,
ParquetFormatPlugin formatPlugin,
List<SchemaPath> columns) |
ParquetGroupScan(String userName,
FileSelection selection,
ParquetFormatPlugin formatPlugin,
List<SchemaPath> columns,
LogicalExpression filter) |
ParquetGroupScan(String userName,
List<ReadEntryWithPath> entries,
StoragePluginConfig storageConfig,
FormatPluginConfig formatConfig,
StoragePluginRegistry engineRegistry,
List<SchemaPath> columns,
String selectionRoot,
String cacheFileRoot,
LogicalExpression filter) |
| Modifier and Type | Method and Description |
|---|---|
void |
applyAssignments(List<CoordinationProtos.DrillbitEndpoint> incomingEndpoints) |
GroupScan |
applyFilter(LogicalExpression filterExpr,
UdfUtilities udfUtilities,
FunctionImplementationRegistry functionImplementationRegistry,
OptionManager optionManager) |
GroupScan |
applyLimit(long maxRecords)
By default, return null to indicate rowcount based prune is not supported.
|
boolean |
canPushdownProjects(List<SchemaPath> columns)
GroupScan should check the list of columns, and see if it could support all the columns in the list.
|
ParquetGroupScan |
clone(FileSelection selection) |
ParquetGroupScan |
clone(FileSelection selection,
long maxRecords) |
GroupScan |
clone(List<SchemaPath> columns)
Returns a clone of GroupScan instance, except that the new GroupScan will use the provided list of columns .
|
List<SchemaPath> |
getColumns() |
long |
getColumnValueCount(SchemaPath column)
Return column value count for the specified column.
|
String |
getDigest()
Returns a signature of the
GroupScan which should usually be composed of
all its attributes which could describe it uniquely. |
StoragePluginConfig |
getEngineConfig() |
List<ReadEntryWithPath> |
getEntries() |
Collection<String> |
getFiles()
Returns a collection of file names associated with this GroupScan.
|
Set<String> |
getFileSet() |
LogicalExpression |
getFilter() |
ParquetFormatConfig |
getFormatConfig() |
int |
getMaxParallelizationWidth() |
PhysicalOperator |
getNewWithChildren(List<PhysicalOperator> children)
Regenerate with this node with a new set of children.
|
List<EndpointAffinity> |
getOperatorAffinity()
Calculates the affinity each endpoint has for this scan, by adding up the affinity each endpoint has for each
rowGroup
|
List<SchemaPath> |
getPartitionColumns()
Returns a list of columns that can be used for partition pruning
|
ScanStats |
getScanStats() |
String |
getSelectionRoot() |
ParquetRowGroupScan |
getSpecificScan(int minorFragmentId) |
static TypeProtos.MajorType |
getType(org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName type,
org.apache.parquet.schema.OriginalType originalType,
int scale,
int precision)
Builds major type using given
OriginalType originalType or PrimitiveTypeName type. |
TypeProtos.MajorType |
getTypeForColumn(SchemaPath schemaPath) |
boolean |
hasFiles()
Return true if this GroupScan can return its selection as a list of file names (retrieved by getFiles()).
|
void |
modifyFileSelection(FileSelection selection) |
void |
populatePruningVector(ValueVector v,
int index,
SchemaPath column,
String file) |
void |
setFilter(LogicalExpression filter) |
boolean |
supportsLimitPushdown()
Default is not to support limit pushdown.
|
String |
toString() |
supportsPartitionFilterPushdownaccept, enforceWidth, getDistributionAffinity, getInitialAllocation, getMaxAllocation, getMinParallelizationWidth, getOperatorType, getScanStats, isExecutable, iteratoraccept, getCost, getOperatorId, getSVMode, getUserName, isBufferedOperator, setCost, setMaxAllocation, setOperatorIdclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitenforceWidth, getMinParallelizationWidth, getScanStatsaccept, getCost, getInitialAllocation, getMaxAllocation, getOperatorId, getOperatorType, getSVMode, getUserName, isBufferedOperator, isExecutable, setCost, setMaxAllocation, setOperatorIdacceptgetDistributionAffinitypublic ParquetGroupScan(String userName, List<ReadEntryWithPath> entries, StoragePluginConfig storageConfig, FormatPluginConfig formatConfig, StoragePluginRegistry engineRegistry, List<SchemaPath> columns, String selectionRoot, String cacheFileRoot, LogicalExpression filter) throws IOException, ExecutionSetupException
IOExceptionExecutionSetupExceptionpublic ParquetGroupScan(String userName, FileSelection selection, ParquetFormatPlugin formatPlugin, List<SchemaPath> columns) throws IOException
IOExceptionpublic ParquetGroupScan(String userName, FileSelection selection, ParquetFormatPlugin formatPlugin, List<SchemaPath> columns, LogicalExpression filter) throws IOException
IOExceptionpublic List<ReadEntryWithPath> getEntries()
public ParquetFormatConfig getFormatConfig()
public StoragePluginConfig getEngineConfig()
public String getSelectionRoot()
public LogicalExpression getFilter()
public void setFilter(LogicalExpression filter)
public boolean hasFiles()
GroupScanhasFiles in interface GroupScanhasFiles in class AbstractGroupScanpublic Collection<String> getFiles()
GroupScangetFiles in interface GroupScangetFiles in class AbstractGroupScanpublic static TypeProtos.MajorType getType(org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName type, org.apache.parquet.schema.OriginalType originalType, int scale, int precision)
OriginalType originalType or PrimitiveTypeName type.
For DECIMAL will be returned major type with scale and precision.type - parquet primitive typeoriginalType - parquet original typescale - type scale (used for DECIMAL type)precision - type precision (used for DECIMAL type)public void modifyFileSelection(FileSelection selection)
modifyFileSelection in interface FileGroupScanmodifyFileSelection in class AbstractFileGroupScanpublic TypeProtos.MajorType getTypeForColumn(SchemaPath schemaPath)
public void populatePruningVector(ValueVector v, int index, SchemaPath column, String file)
public List<EndpointAffinity> getOperatorAffinity()
getOperatorAffinity in interface HasAffinitygetOperatorAffinity in class AbstractGroupScanpublic void applyAssignments(List<CoordinationProtos.DrillbitEndpoint> incomingEndpoints) throws PhysicalOperatorSetupException
PhysicalOperatorSetupExceptionpublic ParquetRowGroupScan getSpecificScan(int minorFragmentId)
public int getMaxParallelizationWidth()
public List<SchemaPath> getColumns()
public ScanStats getScanStats()
getScanStats in class AbstractGroupScanpublic PhysicalOperator getNewWithChildren(List<PhysicalOperator> children)
PhysicalOperatorpublic String getDigest()
GroupScanGroupScan which should usually be composed of
all its attributes which could describe it uniquely.public GroupScan clone(List<SchemaPath> columns)
GroupScanclone in interface GroupScanclone in class AbstractGroupScanpublic ParquetGroupScan clone(FileSelection selection) throws IOException
clone in interface FileGroupScanclone in class AbstractFileGroupScanIOExceptionpublic ParquetGroupScan clone(FileSelection selection, long maxRecords) throws IOException
IOExceptionpublic boolean supportsLimitPushdown()
AbstractGroupScansupportsLimitPushdown in interface GroupScansupportsLimitPushdown in class AbstractGroupScanpublic GroupScan applyLimit(long maxRecords)
AbstractGroupScanapplyLimit in interface GroupScanapplyLimit in class AbstractGroupScanmaxRecords - : the number of rows requested from group scan.public boolean canPushdownProjects(List<SchemaPath> columns)
GroupScancanPushdownProjects in interface GroupScancanPushdownProjects in class AbstractGroupScanpublic long getColumnValueCount(SchemaPath column)
getColumnValueCount in interface GroupScangetColumnValueCount in class AbstractGroupScanpublic List<SchemaPath> getPartitionColumns()
GroupScangetPartitionColumns in interface GroupScangetPartitionColumns in class AbstractGroupScanpublic GroupScan applyFilter(LogicalExpression filterExpr, UdfUtilities udfUtilities, FunctionImplementationRegistry functionImplementationRegistry, OptionManager optionManager)
Copyright © 2017 The Apache Software Foundation. All rights reserved.