1

Knime のすべてのプラグインを Eclipse に追加しました。独自のカスタム ノードを作成したいと考えています。しかし、あるノードから別のノードにデータを渡す方法を理解できません。

「File Reader」ノードであるKnime自体によって提供された1つのノードを見ました。このノードのソース コードまたはこのノードの jar ファイルが必要ですが、見つけることができません。

Eclipseプラグインフォルダーで同様の名前で検索していますが、それでも取得できませんでした。

あるノードから別のノードにデータを渡す方法と、knime とソース コードで指定されたノードのクラスまたは jar を特定する方法を教えてください。

4

2 に答える 2

0

データが標準のデータテーブルであると仮定すると、スーパータイプ コンストラクターを呼び出して、NodeModel をサブクラス化する必要があります。

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

デフォルトのメソッドをオーバーライドする必要があります。#execute(BufferedDataTable[] inData, ExecutionContext exec)これは、ノード作業の要点が実行され、出力テーブルが作成される場所です。理想的には、入力テーブルと出力テーブルに 1 対 1 の行マッピングがある場合は、ColumnRearrangerクラスを使用します (これによりディスク IO が大幅に削減され、必要に応じてノードの単純な並列化が可能になるため)。それ以外の場合は、execute メソッドを反復する必要があります。入力データテーブルを介して出力テーブルを生成します。

#configure(DataTableSpec[] inSpecs)ノードが実行される前にこれが決定できる場合、少なくとも出力テーブルの仕様を提供するためにメソッドを実装する必要があります(通常は可能であり、これにより下流のノードも構成できますが、「転置」ノードはこれができないノードの例)。

他にも実装する必要のあるさまざまなメソッドがありますが、場合によってはこれらが空のメソッドになります。

NodeModel に加えて、いくつかの他のクラス (NodeFactory、オプションで NodeSettingsPane、オプションで NodeView) も実装する必要があります。

Eclipse では、多くのノードのソースを表示できます。また、KNIME コミュニティの「ブック」ページにはすべて、ソース コードへのリンクがあります。ステップバイステップのガイドについては、https://tech.knime.org/developer-guide と https://tech.knime.org/developer/exampleをご覧ください。また、knime フォーラム (開発者フォーラムを含む) への質問には、通常、迅速な回答が得られます。KNIME は、さらに多くのことを学びたい場合は、年に数回、開発者トレーニング コースを実施します。最後になりましたが、ノードがどのように動作するかのベスト プラクティスを説明するノーディング ガイドラインを理解することは価値があります。

于 2017-01-11T22:35:03.383 に答える