Skip to content

HiveTableScanExec Leaf Physical Operator

HiveTableScanExec is a leaf physical operator that represents a HiveTableRelation logical operator at execution time.

HiveTableScanExec is <> exclusively when HiveTableScans.md[HiveTableScans] execution planning strategy plans a HiveTableRelation logical operator (i.e. is executed on a logical query plan with a HiveTableRelation logical operator).

[[nodeName]] HiveTableScanExec uses the HiveTableRelation.md#tableMeta[fully-qualified name of the Hive table] (of the <>) for the node name:

Scan hive [table]

Creating Instance

HiveTableScanExec takes the following when created:

HiveTableScanExec initializes the <>.

=== [[partition-pruning-predicates]] Partition Pruning Predicates

HiveTableScanExec physical operator supports partition pruning for <> that are HiveTableRelation.md#isPartitioned[partitioned].

HiveTableScanExec requires that either the <> has no expressions or the <> is partitioned. Otherwise, HiveTableScanExec throws an IllegalArgumentException.

HiveTableScans.md[HiveTableScans] execution planning strategy creates a HiveTableScanExec physical operator for every HiveTableRelation.md[HiveTableRelation] operator in a query plan. When created, HiveTableScanExec is given the <> that are predicate expressions with no references and among the HiveTableRelation.md#partitionCols[partition columns] of the HiveTableRelation.

Performance Metrics

Key Name (in web UI) Description
numOutputRows number of output rows Number of output rows

=== [[doExecute]] Executing Physical Operator (Generating RDD[InternalRow]) -- doExecute Method

[source, scala]

doExecute(): RDD[InternalRow]

doExecute is part of the SparkPlan abstraction.

doExecute...FIXME

=== [[internal-properties]] Internal Properties

[cols="30m,70",options="header",width="100%"] |=== | Name | Description

| boundPruningPred a| [[boundPruningPred]] Catalyst ../expressions/Expression.md[expression] for the <> bound to (the HiveTableRelation.md#partitionCols[partitionCols] of) the <>

| hiveQlTable a| [[hiveQlTable]] Hive {url-hive-javadoc}/org/apache/hadoop/hive/ql/metadata/Table.html[Table] metadata (HiveClientImpl.md#toHiveTable[converted] from the HiveTableRelation.md#tableMeta[CatalogTable] of the <>)

Used when HiveTableScanExec is requested for the <>, <> and is <>

| hadoopReader a| [[hadoopReader]] HadoopTableReader.md[HadoopTableReader]

| rawPartitions a| [[rawPartitions]] HiveClientImpl.md#toHivePartition[Hive partitions] (Seq[Partition])

Used when HiveTableScanExec physical operator is <> with a partitioned table

| tableDesc a| [[tableDesc]] Hive {url-hive-javadoc}/org/apache/hive/hcatalog/templeton/TableDesc.html[TableDesc]

|===