Search in sources :

Example 11 with DataTableRowInput

use of org.knime.core.node.streamable.DataTableRowInput in project knime-core by knime.

the class JavaRowSplitterNodeModel method execute.

/**
 * {@inheritDoc}
 */
@Override
protected BufferedDataTable[] execute(final BufferedDataTable[] inData, final ExecutionContext exec) throws Exception {
    final int rowCount = inData[0].getRowCount();
    m_rowCount = rowCount;
    DataTableRowInput input = new DataTableRowInput(inData[0]);
    DataTableSpec spec = inData[0].getDataTableSpec();
    BufferedDataContainer trueMatch = exec.createDataContainer(spec);
    BufferedDataTableRowOutput[] outputs;
    BufferedDataContainer falseMatch = null;
    if (getNrOutPorts() == 2) {
        falseMatch = exec.createDataContainer(spec);
    }
    outputs = Stream.of(trueMatch, falseMatch).filter(f -> f != null).map(f -> new BufferedDataTableRowOutput(f)).toArray(BufferedDataTableRowOutput[]::new);
    execute(input, outputs, exec);
    BufferedDataTable[] outTables = Stream.of(trueMatch, falseMatch).filter(f -> f != null).map(f -> f.getTable()).toArray(BufferedDataTable[]::new);
    return outTables;
}
Also used : IntStream(java.util.stream.IntStream) Arrays(java.util.Arrays) NodeSettingsRO(org.knime.core.node.NodeSettingsRO) DataTableSpec(org.knime.core.data.DataTableSpec) InvalidSettingsException(org.knime.core.node.InvalidSettingsException) CanceledExecutionException(org.knime.core.node.CanceledExecutionException) JavaScriptingCustomizer(org.knime.ext.sun.nodes.script.settings.JavaScriptingCustomizer) BufferedDataTableRowOutput(org.knime.core.node.streamable.BufferedDataTableRowOutput) Expression(org.knime.ext.sun.nodes.script.expression.Expression) ExecutionContext(org.knime.core.node.ExecutionContext) DataTableRowInput(org.knime.core.node.streamable.DataTableRowInput) StreamableOperatorInternals(org.knime.core.node.streamable.StreamableOperatorInternals) BooleanValue(org.knime.core.data.BooleanValue) DataCell(org.knime.core.data.DataCell) PortInput(org.knime.core.node.streamable.PortInput) ExecutionMonitor(org.knime.core.node.ExecutionMonitor) PartitionInfo(org.knime.core.node.streamable.PartitionInfo) RowInput(org.knime.core.node.streamable.RowInput) PortObjectSpec(org.knime.core.node.port.PortObjectSpec) ColumnCalculator(org.knime.ext.sun.nodes.script.calculator.ColumnCalculator) IOException(java.io.IOException) OutputPortRole(org.knime.core.node.streamable.OutputPortRole) BufferedDataContainer(org.knime.core.node.BufferedDataContainer) NodeModel(org.knime.core.node.NodeModel) File(java.io.File) DataRow(org.knime.core.data.DataRow) PortOutput(org.knime.core.node.streamable.PortOutput) NodeSettingsWO(org.knime.core.node.NodeSettingsWO) BufferedDataTable(org.knime.core.node.BufferedDataTable) Stream(java.util.stream.Stream) KnowsRowCountTable(org.knime.core.node.BufferedDataTable.KnowsRowCountTable) FlowVariableProvider(org.knime.ext.sun.nodes.script.calculator.FlowVariableProvider) InputPortRole(org.knime.core.node.streamable.InputPortRole) SimpleStreamableOperatorInternals(org.knime.core.node.streamable.simple.SimpleStreamableOperatorInternals) CheckUtils(org.knime.core.node.util.CheckUtils) MergeOperator(org.knime.core.node.streamable.MergeOperator) RowOutput(org.knime.core.node.streamable.RowOutput) StreamableOperator(org.knime.core.node.streamable.StreamableOperator) JavaScriptingSettings(org.knime.ext.sun.nodes.script.settings.JavaScriptingSettings) DataTableSpec(org.knime.core.data.DataTableSpec) BufferedDataContainer(org.knime.core.node.BufferedDataContainer) DataTableRowInput(org.knime.core.node.streamable.DataTableRowInput) BufferedDataTable(org.knime.core.node.BufferedDataTable) BufferedDataTableRowOutput(org.knime.core.node.streamable.BufferedDataTableRowOutput)

Example 12 with DataTableRowInput

use of org.knime.core.node.streamable.DataTableRowInput in project knime-core by knime.

the class FilterApplyRowSplitterNodeModel method execute.

/**
 * {@inheritDoc}
 */
@Override
protected PortObject[] execute(final PortObject[] inObjects, final ExecutionContext exec) throws Exception {
    exec.setProgress(0);
    PortObject portObject = inObjects[1];
    DataTableSpec filterSpec = portObject == null ? ((BufferedDataTable) inObjects[0]).getDataTableSpec() : ((FilterDefinitionHandlerPortObject) portObject).getSpec();
    final BufferedDataTableRowOutput out1 = new BufferedDataTableRowOutput(exec.createDataContainer(((BufferedDataTable) inObjects[0]).getDataTableSpec()));
    final BufferedDataTableRowOutput out2 = new BufferedDataTableRowOutput(exec.createDataContainer(((BufferedDataTable) inObjects[0]).getDataTableSpec()));
    execute(new DataTableRowInput((BufferedDataTable) inObjects[0]), out1, out2, filterSpec, exec, ((BufferedDataTable) inObjects[0]).size());
    return new BufferedDataTable[] { out1.getDataTable(), out2.getDataTable() };
}
Also used : DataTableSpec(org.knime.core.data.DataTableSpec) BufferedDataTable(org.knime.core.node.BufferedDataTable) DataTableRowInput(org.knime.core.node.streamable.DataTableRowInput) FilterDefinitionHandlerPortObject(org.knime.core.node.port.viewproperty.FilterDefinitionHandlerPortObject) PortObject(org.knime.core.node.port.PortObject) BufferedDataTableRowOutput(org.knime.core.node.streamable.BufferedDataTableRowOutput)

Example 13 with DataTableRowInput

use of org.knime.core.node.streamable.DataTableRowInput in project knime-core by knime.

the class FilterApplyRowSplitterNodeModel method createStreamableOperator.

/**
 * {@inheritDoc}
 */
@Override
public StreamableOperator createStreamableOperator(final PartitionInfo partitionInfo, final PortObjectSpec[] inSpecs) throws InvalidSettingsException {
    return new StreamableOperator() {

        @Override
        public void runFinal(final PortInput[] inputs, final PortOutput[] outputs, final ExecutionContext exec) throws Exception {
            final DataTableRowInput in = (DataTableRowInput) inputs[0];
            final RowOutput out1 = (RowOutput) outputs[0];
            final RowOutput out2 = (RowOutput) outputs[1];
            PortObjectInput portObjectInput = (PortObjectInput) inputs[1];
            DataTableSpec filterSpec = portObjectInput == null ? in.getDataTableSpec() : ((FilterDefinitionHandlerPortObject) portObjectInput.getPortObject()).getSpec();
            FilterApplyRowSplitterNodeModel.this.execute(in, out1, out2, filterSpec, exec, -1);
        }
    };
}
Also used : BufferedDataTableRowOutput(org.knime.core.node.streamable.BufferedDataTableRowOutput) RowOutput(org.knime.core.node.streamable.RowOutput) DataTableSpec(org.knime.core.data.DataTableSpec) ExecutionContext(org.knime.core.node.ExecutionContext) StreamableOperator(org.knime.core.node.streamable.StreamableOperator) DataTableRowInput(org.knime.core.node.streamable.DataTableRowInput) PortObjectInput(org.knime.core.node.streamable.PortObjectInput)

Example 14 with DataTableRowInput

use of org.knime.core.node.streamable.DataTableRowInput in project knime-core by knime.

the class LagColumnStreamableOperator method execute.

BufferedDataTable execute(final BufferedDataTable table, final ExecutionContext exec) throws Exception {
    long maxRows = table.size();
    int maxLag = m_configuration.getLag() * m_configuration.getLagInterval();
    if (m_configuration.isSkipInitialIncompleteRows()) {
        maxRows -= maxLag;
    }
    if (!m_configuration.isSkipLastIncompleteRows()) {
        maxRows += maxLag;
    }
    m_maxRows = maxRows;
    BufferedDataContainer output = exec.createDataContainer(m_outSpec);
    RowInput wrappedInput = new DataTableRowInput(table);
    DataContainerPortOutput wrappedOutput = new DataContainerPortOutput(output);
    runFinal(new PortInput[] { wrappedInput }, new PortOutput[] { wrappedOutput }, exec);
    return wrappedOutput.getTable();
}
Also used : BufferedDataContainer(org.knime.core.node.BufferedDataContainer) DataTableRowInput(org.knime.core.node.streamable.DataTableRowInput) RowInput(org.knime.core.node.streamable.RowInput) DataTableRowInput(org.knime.core.node.streamable.DataTableRowInput)

Example 15 with DataTableRowInput

use of org.knime.core.node.streamable.DataTableRowInput in project knime-core by knime.

the class ExtractMissingValueCauseNodeModel method execute.

@Override
protected BufferedDataTable[] execute(final BufferedDataTable[] inObjects, final ExecutionContext exec) throws Exception {
    final ColumnRearranger columnRearranger = createColumnRearranger(inObjects[0].getDataTableSpec());
    if (!m_isFiltered.getBooleanValue()) {
        final BufferedDataTable out = exec.createColumnRearrangeTable(inObjects[0], columnRearranger, exec);
        return new BufferedDataTable[] { out };
    } else {
        exec.setProgress(0);
        final BufferedDataTableRowOutput out = new BufferedDataTableRowOutput(exec.createDataContainer(columnRearranger.createSpec()));
        execute(new DataTableRowInput(inObjects[0]), out, exec, inObjects[0].size());
        return new BufferedDataTable[] { out.getDataTable() };
    }
}
Also used : ColumnRearranger(org.knime.core.data.container.ColumnRearranger) BufferedDataTable(org.knime.core.node.BufferedDataTable) DataTableRowInput(org.knime.core.node.streamable.DataTableRowInput) BufferedDataTableRowOutput(org.knime.core.node.streamable.BufferedDataTableRowOutput)

Aggregations

DataTableRowInput (org.knime.core.node.streamable.DataTableRowInput)24 BufferedDataTableRowOutput (org.knime.core.node.streamable.BufferedDataTableRowOutput)16 BufferedDataTable (org.knime.core.node.BufferedDataTable)15 DataTableSpec (org.knime.core.data.DataTableSpec)9 BufferedDataContainer (org.knime.core.node.BufferedDataContainer)9 RowInput (org.knime.core.node.streamable.RowInput)7 ColumnRearranger (org.knime.core.data.container.ColumnRearranger)6 RowOutput (org.knime.core.node.streamable.RowOutput)6 StreamableOperator (org.knime.core.node.streamable.StreamableOperator)4 DataRow (org.knime.core.data.DataRow)3 ExecutionContext (org.knime.core.node.ExecutionContext)3 PortObject (org.knime.core.node.port.PortObject)3 PortInput (org.knime.core.node.streamable.PortInput)3 DataCell (org.knime.core.data.DataCell)2 PartitionInfo (org.knime.core.node.streamable.PartitionInfo)2 PortObjectInput (org.knime.core.node.streamable.PortObjectInput)2 PortOutput (org.knime.core.node.streamable.PortOutput)2 SimpleStreamableOperatorInternals (org.knime.core.node.streamable.simple.SimpleStreamableOperatorInternals)2 File (java.io.File)1 IOException (java.io.IOException)1