public final class CrossJoin extends ExecutableOperator
TypeUtil.merge(RecordTokenType...)
for details on the renaming process.
To generate pairs, the right-hand data is temporarily stored to disk for multiple passes. The left-hand data is read into memory in chunks, which are then used to generate a full set of pairs with the iterable right-hand data. This process is repeated until the left-hand data is exhausted.
No guarantee is made in respect to the ordering of the output data.
Constructor and Description |
---|
CrossJoin()
Performs a cross join between two inputs
|
Modifier and Type | Method and Description |
---|---|
protected void |
computeMetadata(StreamingMetadataContext ctx)
Implementations must adhere to the following contracts
|
protected void |
execute(ExecutionContext ctx)
The controller handles chunking the LHS data into reasonable chunks that can be loaded into memory.
|
int |
getBufferRows()
Gets the size (in rows) of the memory buffer used to generate
output records.
|
RecordPort |
getLeftInput()
Returns the left input port
|
RecordPort |
getOutput()
Returns the input port
|
RecordPort |
getRightInput()
Returns the right input port
|
void |
setBufferRows(int rows)
Sets the size (in rows) of the memory buffer used to generate
output record.
|
cloneForExecution, getNumInputCopies, getPortSettings, handleInactiveOutput
disableParallelism, getInputPorts, getOutputPorts, newInput, newInput, newOutput, newRecordInput, newRecordInput, newRecordOutput, notifyError
public RecordPort getLeftInput()
public RecordPort getRightInput()
public RecordPort getOutput()
public void setBufferRows(int rows)
rows
- number of rows to store in memory bufferpublic int getBufferRows()
protected void computeMetadata(StreamingMetadataContext ctx)
StreamingOperator
StreamingMetadataContext.parallelize(ParallelismStrategy)
.
RecordPort#setRequiredDataOrdering
, otherwise data may arrive in any order.
RecordPort#setRequiredDataDistribution
, otherwise data will arrive in an unspecified partial distribution
.
RecordPort#getSourceDataDistribution
and RecordPort#getSourceDataOrdering
. These should be
viewed as a hints to help chose a more efficient algorithm. In such cases, though, operators must
still declare data ordering and data distribution requirements; otherwise there is no guarantee that
data will arrive sorted/distributed as required.
RecordPort#setType
.RecordPort#setOutputDataOrdering
RecordPort#setOutputDataDistribution
AbstractModelPort#setMergeHandler
.MergeModel
is a convenient, re-usable model reducer, parameterized with
a merge-handler.
SimpleModelPort
's have no associated metadata and therefore there is
never any output metadata to declare. PMMLPort
's, on the other hand,
do have associated metadata. For all PMMLPorts, implementations must declare
the following:
PMMLPort.setPMMLModelSpec
.
computeMetadata
in class StreamingOperator
ctx
- the contextprotected void execute(ExecutionContext ctx)
execute
in class ExecutableOperator
ctx
- context in which to lookup physical ports bound to logical portsCopyright © 2020 Actian Corporation. All rights reserved.