2016-11-26 1 views
0

J'ai ajouté tous les plugins de Knime dans Eclipse et je veux créer mon propre noeud personnalisé. mais je ne suis pas capable de comprendre comment transmettre les données d'un nœud à un autre.comment créer un noeud personnalisé dans le knime?

J'ai vu un noeud qui a été fourni par le Knime lui-même qui est le noeud "File Reader". Maintenant, je veux le code source de ce noeud ou fichier jar pour ce noeud Mais je ne suis pas en mesure de le découvrir.

Je cherche avec le nom similaire dans le dossier plugin eclipse mais je n'ai toujours pas compris.

Est-ce que quelqu'un peut me dire comment transmettre les données d'un nœud à un autre nœud et comment identifier les classes ou jar pour tout nœud donné par knime et le code source aussi.

+0

Veuillez supprimer votre adresse e-mail. Les réponses de Stackoverflow ne sont pas envoyées par e-mail et le laisser ici, causera simplement beaucoup de spam qui lui est envoyé. Vous pouvez également étiqueter votre question avec "Eclipse" afin que les gens puissent la trouver. – ImportanceOfBeingErnest

+1

https://tech.knime.org/developers –

Répondre

0

En supposant que vos données sont un datatable standard, alors vous devez sous-classe NodeModel, avec un appel au constructeur supertype:

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

Vous devez remplacer la méthode par défaut #execute(BufferedDataTable[] inData, ExecutionContext exec) - c'est là la viande le travail du noeud est terminé et la table de sortie est créée. Idéalement, si vos tables d'entrée et de sortie ont un mappage un-à-un, utilisez une classe ColumnRearranger (car cela réduit considérablement l'E/S disque et, si vous en avez besoin, permet une simple parallélisation de votre noeud), sinon votre méthode d'exécution doit parcourir la datatable entrante et générer une table de sortie. La méthode #configure(DataTableSpec[] inSpecs) doit être implémentée pour au moins fournir une spécification pour la table de sortie si cela peut être déterminé avant l'exécution du nœud (normalement, cela permet aux nœuds en aval d'être également configurés, mais Le noeud Transpose 'est un exemple de noeud qui ne peut pas le faire).

Il existe plusieurs autres méthodes que vous devez également implémenter, mais dans certains cas, il s'agit de méthodes vides.

Outre le NodeModel, vous devez également implémenter d'autres classes: une NodeFactory, éventuellement un NodeSettingsPane et éventuellement un NodeView. Dans Eclipse, vous pouvez voir les sources de nombreux nœuds, et les pages «book» de la communauté KNIME ont toutes un lien vers leur code source. Jetez un oeil à https://tech.knime.org/developer-guide et https://tech.knime.org/developer/example pour un guide étape-par-étape. De plus, les questions adressées aux forums de discussion (y compris un forum de développeurs) reçoivent généralement des réponses rapides - et KNIME organise un cours de formation des développeurs quelques fois par an si vous souhaitez passer quelques jours à en apprendre davantage. Et last but not least, il vaut la peine de vous familiariser avec les lignes directrices qui décrivent les meilleures pratiques de comportement de votre nœud.

0

Le code source des nœuds KNIME est maintenant disponible sur git hub. Vous pouvez également vérifier dans le cadre de votre projet> les dépendances du plugin> knime-base.jar> org.knime.base.node.io.filereader pour le code source du lecteur de fichiers dans le kit KNX SDK eclipse. Knime-base.jar sera ajouté à votre projet par défaut lorsqu'il est créé avec KNIME SDK.