compute(thePart: Partition, context: TaskContext): Iterator[InternalRow]
JDBCRDD
JDBCRDD
is a RDD
of internal binary rows that represents a structured query over a table in a database accessed via JDBC.
Note
|
JDBCRDD represents a "SELECT requiredColumns FROM table" query.
|
JDBCRDD
is created exclusively when JDBCRDD
is requested to scanTable (when JDBCRelation
is requested to build a scan).
Name | Description |
---|---|
|
Used when…FIXME |
|
Filters as a SQL Used when…FIXME |
Computing Partition (in TaskContext) — compute
Method
Note
|
compute is part of Spark Core’s RDD Contract to compute a partition (in a TaskContext ).
|
compute
…FIXME
resolveTable
Method
resolveTable(options: JDBCOptions): StructType
resolveTable
…FIXME
Note
|
resolveTable is used exclusively when JDBCRelation is requested for the schema.
|
Creating RDD for Distributed Data Scan — scanTable
Object Method
scanTable(
sc: SparkContext,
schema: StructType,
requiredColumns: Array[String],
filters: Array[Filter],
parts: Array[Partition],
options: JDBCOptions): RDD[InternalRow]
scanTable
takes the url option.
scanTable
finds the corresponding JDBC dialect (per the url
option) and requests it to quote the column identifiers in the input requiredColumns
.
scanTable
uses the JdbcUtils
object to createConnectionFactory and prune columns from the input schema
to include the input requiredColumns
only.
In the end, scanTable
creates a new JDBCRDD.
Note
|
scanTable is used exclusively when JDBCRelation is requested to build a distributed data scan with column pruning and filter pushdown.
|
Creating JDBCRDD Instance
JDBCRDD
takes the following when created:
-
Schema (StructType)
-
Array of Filter predicates
JDBCRDD
initializes the internal registries and counters.
getPartitions
Method
getPartitions: Array[Partition]
Note
|
getPartitions is part of Spark Core’s RDD Contract to…FIXME
|
getPartitions
simply returns the partitions (this JDBCRDD
was created with).
pruneSchema
Internal Method
pruneSchema(schema: StructType, columns: Array[String]): StructType
pruneSchema
…FIXME
Note
|
pruneSchema is used when…FIXME
|
Converting Filter Predicate to SQL Expression — compileFilter
Object Method
compileFilter(f: Filter, dialect: JdbcDialect): Option[String]
compileFilter
…FIXME
Note
|
|