1

我已经在 Eclipse 中添加了 Knime 的所有插件,我想创建自己的自定义节点。但我无法理解如何将数据从一个节点传递到另一个节点。

我看到了 Knime 本身提供的一个节点,即“文件阅读器”节点。现在我想要这个节点的源代码或这个节点的 jar 文件但是我找不到它。

我在 eclipse 插件文件夹中搜索类似的名称,但我仍然没有得到它。

有人可以告诉我如何将数据从一个节点传递到另一个节点,以及如何识别 knime 和源代码给出的任何节点的类或 jar。

4

2 回答 2

0

KNIME 节点的源代码现在可以在git hub上找到。

或者,您可以在您的项目>插件依赖项>knime-base.jar>org.knime.base.node.io.filereader 下检查 Eclipse KNIME SDK 中的文件阅读器源代码。

使用 KNIME SDK 创建时,默认情况下 Knime-base.jar 将添加到您的项目中。

于 2017-04-07T23:29:50.750 回答
0

假设您的数据是标准数据表,那么您需要继承 NodeModel,并调用超类型构造函数:

public MyNodeModel(){
     //One incoming table, one outgoing table
     super(1,1);
}

您需要覆盖默认#execute(BufferedDataTable[] inData, ExecutionContext exec)方法 - 这是完成节点工作并创建输出表的地方。理想情况下,如果您的输入和输出表具有一对一的行映射,则使用一个ColumnRearranger类(因为这会大大减少磁盘 IO,并且如果您需要它,允许您的节点进行简单的并行化),否则您的执行方法需要迭代通过传入的数据表并生成一个输出表。

#configure(DataTableSpec[] inSpecs)如果可以在节点执行之前确定该方法,则至少需要为输出表提供规范(通常可以,这允许下游节点也可以配置,但“转置”节点是不能这样做的节点的示例)。

您还需要实现各种其他方法,但在某些情况下,这些方法将是空方法。

除了 NodeModel,您还需要实现一些其他类 - NodeFactory、可选的 NodeSettingsPane 和可选的 NodeView。

在 Eclipse 中,您可以查看许多节点的源代码,而且 KNIME 社区“书籍”页面都有指向其源代码的链接。查看https://tech.knime.org/developer-guidehttps://tech.knime.org/developer/example以获取分步指南。此外,向 knime 论坛(包括开发者论坛)提出的问题通常会得到快速响应 - 如果您想花几天时间了解更多信息,KNIME 每年会举办几次开发者培训课程。最后但并非最不重要的一点是,值得让自己熟悉一下节点指南,该指南描述了节点应如何表现的最佳实践

于 2017-01-11T22:35:03.383 回答