Knime是一个非常强大的数据分析平台,支持常用的各种数据清洗,分析等功能。
但是有些时候数据的预处理,比如打标记等等需要一些外部逻辑,这种时候用java代码可能更快。
为了让数据处理更流畅,而不是在Knime中输出一个中间结果,然后在放回Knime中继续这样断断续续的方法,Knime提供了各种语言的集成,比如Java,Python等。其中Java代码的集成是原生支持的,而Python等语言是需要安装插件的。
这里用阿里天池全球城市计算AI挑战赛的数据作为说明。
假定我们读取文件每次只读取同一天的数据,比如要计算星期二的,就只读取同样为星期二的历史数据。workflows需要用到
- List Files
- Java Snippet
- Rule-based Row Filter
- Table Row To Variable Loop Start
- CSV Reader

其中List Files可以将指定目录的文件全部列出

然后我们在Java Snippet中写逻辑过滤就行了,这里追加一个星期标识
// system imports
import org.knime.base.node.jsnippet.expression.AbstractJSnippet;
import org.knime.base.node.jsnippet.expression.Abort;
import org.knime.base.node.jsnippet.expression.Cell;
import org.knime.base.node.jsnippet.expression.ColumnException;
import org.knime.base.node.jsnippet.expression.TypeException;
import static org.knime.base.node.jsnippet.expression.Type.*;
…