Search in sources :

Example 31 with RowInput

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

the class RuleEngineFilterNodeModel method createStreamableOperator.

/**
 * {@inheritDoc}
 */
@Override
public StreamableOperator createStreamableOperator(final PartitionInfo partitionInfo, final PortObjectSpec[] inSpecs) throws InvalidSettingsException {
    final DataTableSpec spec = (DataTableSpec) inSpecs[0];
    try {
        parseRules(spec, RuleNodeSettings.RuleFilter);
    } catch (final ParseException e) {
        throw new InvalidSettingsException(e);
    }
    return new StreamableOperator() {

        private SimpleStreamableOperatorInternals m_internals;

        /**
         * {@inheritDoc}
         */
        @Override
        public void loadInternals(final StreamableOperatorInternals internals) {
            m_internals = (SimpleStreamableOperatorInternals) internals;
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public void runIntermediate(final PortInput[] inputs, final ExecutionContext exec) throws Exception {
            // count number of rows
            long count = 0;
            if (inputs[0] instanceof RowInput) {
                final RowInput rowInput = (RowInput) inputs[0];
                while (rowInput.poll() != null) {
                    count++;
                }
            } else if (inputs[0] instanceof PortObjectInput) {
                final PortObjectInput portObjectInput = (PortObjectInput) inputs[0];
                count += ((BufferedDataTable) portObjectInput.getPortObject()).size();
            }
            m_internals.getConfig().addLong(CFG_ROW_COUNT, count);
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public StreamableOperatorInternals saveInternals() {
            return m_internals;
        }

        @Override
        public void runFinal(final PortInput[] inputs, final PortOutput[] outputs, final ExecutionContext exec) throws Exception {
            long rowCount = -1L;
            if (m_internals.getConfig().containsKey(CFG_ROW_COUNT)) {
                rowCount = m_internals.getConfig().getLong(CFG_ROW_COUNT);
            }
            RowOutput[] rowOutputs = (outputs instanceof RowOutput[]) ? (RowOutput[]) outputs : outputs.length > 1 ? new RowOutput[] { (RowOutput) outputs[0], (RowOutput) outputs[1] } : new RowOutput[] { (RowOutput) outputs[0] };
            execute((RowInput) inputs[0], rowOutputs, rowCount, exec);
        }
    };
}
Also used : DataTableSpec(org.knime.core.data.DataTableSpec) SimpleStreamableOperatorInternals(org.knime.core.node.streamable.simple.SimpleStreamableOperatorInternals) StreamableOperator(org.knime.core.node.streamable.StreamableOperator) StreamableOperatorInternals(org.knime.core.node.streamable.StreamableOperatorInternals) SimpleStreamableOperatorInternals(org.knime.core.node.streamable.simple.SimpleStreamableOperatorInternals) DataTableRowInput(org.knime.core.node.streamable.DataTableRowInput) RowInput(org.knime.core.node.streamable.RowInput) PortObjectInput(org.knime.core.node.streamable.PortObjectInput) BufferedDataTableRowOutput(org.knime.core.node.streamable.BufferedDataTableRowOutput) RowOutput(org.knime.core.node.streamable.RowOutput) ExecutionContext(org.knime.core.node.ExecutionContext) InvalidSettingsException(org.knime.core.node.InvalidSettingsException) BufferedDataTable(org.knime.core.node.BufferedDataTable) ParseException(java.text.ParseException)

Example 32 with RowInput

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

the class AbstractConditionalStreamingNodeModel method createStreamableOperator.

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

        private SimpleStreamableOperatorInternals m_internals;

        /**
         * {@inheritDoc}
         */
        @Override
        public void loadInternals(final StreamableOperatorInternals internals) {
            m_internals = (SimpleStreamableOperatorInternals) internals;
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public void runIntermediate(final PortInput[] inputs, final ExecutionContext exec) throws Exception {
            // count number of rows
            long count = 0;
            RowInput rowInput = (RowInput) inputs[0];
            while (rowInput.poll() != null) {
                count++;
            }
            m_internals.getConfig().addLong(CFG_ROW_COUNT, count);
        }

        @Override
        public void runFinal(final PortInput[] inputs, final PortOutput[] outputs, final ExecutionContext exec) throws Exception {
            long rowCount = -1;
            if (m_internals.getConfig().containsKey(CFG_ROW_COUNT)) {
                rowCount = m_internals.getConfig().getLong(CFG_ROW_COUNT);
            }
            StreamableFunction func = createColumnRearranger((DataTableSpec) inSpecs[0], rowCount).createStreamableFunction();
            func.runFinal(inputs, outputs, exec);
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public StreamableOperatorInternals saveInternals() {
            return m_internals;
        }
    };
}
Also used : DataTableSpec(org.knime.core.data.DataTableSpec) SimpleStreamableOperatorInternals(org.knime.core.node.streamable.simple.SimpleStreamableOperatorInternals) ExecutionContext(org.knime.core.node.ExecutionContext) StreamableOperator(org.knime.core.node.streamable.StreamableOperator) StreamableOperatorInternals(org.knime.core.node.streamable.StreamableOperatorInternals) SimpleStreamableOperatorInternals(org.knime.core.node.streamable.simple.SimpleStreamableOperatorInternals) RowInput(org.knime.core.node.streamable.RowInput) StreamableFunction(org.knime.core.node.streamable.StreamableFunction)

Example 33 with RowInput

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

the class NumericOutliersApplyNodeModel method createStreamableOperator.

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

        SummaryInternals m_summaryInternals;

        @Override
        public void runFinal(final PortInput[] inputs, final PortOutput[] outputs, final ExecutionContext exec) throws Exception {
            final NumericOutlierPortObject outlierPort = (NumericOutlierPortObject) ((PortObjectInput) inputs[0]).getPortObject();
            NumericOutliersReviser outlierReviser = outlierPort.getOutRevBuilder().build();
            outlierReviser.treatOutliers(exec, (RowInput) inputs[1], (RowOutput) outputs[0], outlierPort.getOutlierModel(((RowInput) inputs[1]).getDataTableSpec()));
            m_summaryInternals = outlierReviser.getSummaryInternals();
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public StreamableOperatorInternals saveInternals() {
            return m_summaryInternals;
        }
    };
}
Also used : ExecutionContext(org.knime.core.node.ExecutionContext) NumericOutlierPortObject(org.knime.base.algorithms.outlier.NumericOutlierPortObject) SummaryInternals(org.knime.base.algorithms.outlier.NumericOutliersReviser.SummaryInternals) NumericOutliersReviser(org.knime.base.algorithms.outlier.NumericOutliersReviser) StreamableOperator(org.knime.core.node.streamable.StreamableOperator) RowInput(org.knime.core.node.streamable.RowInput)

Aggregations

RowInput (org.knime.core.node.streamable.RowInput)33 ExecutionContext (org.knime.core.node.ExecutionContext)25 StreamableOperator (org.knime.core.node.streamable.StreamableOperator)25 RowOutput (org.knime.core.node.streamable.RowOutput)21 DataTableSpec (org.knime.core.data.DataTableSpec)17 DataTableRowInput (org.knime.core.node.streamable.DataTableRowInput)16 DataRow (org.knime.core.data.DataRow)11 ColumnRearranger (org.knime.core.data.container.ColumnRearranger)11 BufferedDataTable (org.knime.core.node.BufferedDataTable)10 BufferedDataTableRowOutput (org.knime.core.node.streamable.BufferedDataTableRowOutput)9 StreamableOperatorInternals (org.knime.core.node.streamable.StreamableOperatorInternals)9 InvalidSettingsException (org.knime.core.node.InvalidSettingsException)8 SimpleStreamableOperatorInternals (org.knime.core.node.streamable.simple.SimpleStreamableOperatorInternals)7 DataCell (org.knime.core.data.DataCell)6 SettingsModelString (org.knime.core.node.defaultnodesettings.SettingsModelString)6 PortInput (org.knime.core.node.streamable.PortInput)6 IOException (java.io.IOException)5 BufferedDataContainer (org.knime.core.node.BufferedDataContainer)5 CanceledExecutionException (org.knime.core.node.CanceledExecutionException)5 File (java.io.File)4