java调用knime_Knime中集成Java代码

java调用knime_Knime中集成Java代码本文版权归作者所有 欢迎转载 但未经作者同意必须保留此段声明 且在文章页面明显位置给出原文连接 否则保留追究法律责任的权利 Knime 是一个非常强大的数据分析平台 支持常用的各种数据清洗 分析等功能 但是有些时候数据的预处理 比如打标记等等需要一些外部逻辑 这种时候用 java 代码可能更快 为了让数据处理更流畅 而不是在 Knime 中输出一个中间结果 然后在放回 Knime 中继续这样断断续续的方法 Kn

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

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

1246b74db896f11f5e0c7e6b4b84bacc.png

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

7acf970869d308c50df99bc84bc49744.png

然后我们在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.*;

import java.util.Date;

import java.util.Calendar;

import org.w3c.dom.Document;

// Your custom imports:

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import org.joda.time.DateTime;

import org.joda.time.format.DateTimeFormat;

import org.joda.time.format.DateTimeFormatter;

// system variables

public class JSnippet extends AbstractJSnippet {

// Fields for input columns

/ Input column: “Location” */

public String c_Location;

/ Input column: “URL” */

public String c_URL;

// Fields for input flow variables

/ Input flow variable: “target-data” */

public String v_targetdata;

// Fields for output columns

/ Output column: “fileDayOfWeek” */

public Integer out_fileDayOfWeek;

/ Output column: “dayOfWeek” */

public Integer out_dayOfWeek;

// Your custom variables:

// expression start

public void snippet() throws TypeException, ColumnException, Abort {

// Enter your code here:

DateTimeFormatter formatter = DateTimeFormat.forPattern(“yyyy-MM-dd”);

DateTime dateTime = formatter.parseDateTime(v_targetdata);

out_dayOfWeek = dateTime.getDayOfWeek();

Pattern pattern = Pattern.compile(“record_(\\S+).csv”);

Matcher matcher = pattern.matcher(c_URL);

if (matcher.find()) {

out_fileDayOfWeek = formatter.parseDateTime(matcher.group(1)).getDayOfWeek();

} else {

out_fileDayOfWeek = -1;

}

// expression end

}

}

03c663766a9916b60da8cd4ab07ec64d.png

这里的代码就是普通的Java代码,其中还引用了joda作为三方库。Knime默认自带了一些常用Java三方库,也可以自己添加。

一般输入就是c_{Column Name},而输出是out_{Column Name},效果如下图

db4ee584904afa00d2a6c3fd93fa03dd.png

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/228246.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午7:28
下一篇 2026年3月16日 下午7:28


相关推荐

  • CRC在线计算器

    CRC在线计算器https www lammertbies nl comm info crc calculation html

    2026年3月19日
    2
  • pycharm断点怎么用_idea如何打断点调试

    pycharm断点怎么用_idea如何打断点调试如何进行断点调试1添加断点2调试断点3调试到下一个断点4关于断点调试的说明4.1stepinto4.2stepover4.3stepout5快捷键6参考本文是基于pycharm2019.12的版本撰写的。1添加断点断点的添加方法:在代码的行标前面左键单击即可,如下图所示注意:被注释了的代码行是添加不了断点的!!!2调试断点两种方法,效果都是一样的:点击那个绿色的甲虫图标,开始断点调试,如下图,或者使用右键,选中debug,开始断点调试,如下

    2022年8月25日
    7
  • Java 时间 long转int问题

    Java 时间 long转int问题nbsp nbsp 需要将多个时间对比 在 date 转成 int 型的时候 有时会出现负数 因为毫秒级时间的 long 长度超出了 int 的长度范围 比如 nbsp 最简单的解决方法 除 1000returnda getTime 1000 nbsp

    2026年3月19日
    2
  • python修改第三方库重写_对Python第三方库,再次封装

    python修改第三方库重写_对Python第三方库,再次封装一、为何再次封装?Python一大优势是有丰富的第三方包。可以站在牛人的肩膀上,让编程更简单,功能实现更快,也更完善。但有包还不够,因为包是通用的,普遍的。包含基本功能,或为了普遍性,而给了很多选项。用起来不顺手,或不够简洁。为了更进一步提高效率,就要再次封装。就是依据具体需求,将包重新写,做个性化处理。让工具更顺手,更方便。二、举例比如在U2中,有多种方法查找元素。通过text,describt…

    2022年10月14日
    5
  • Nano-Banana保姆级教程:从零调参生成说明书质感分解视图

    Nano-Banana保姆级教程:从零调参生成说明书质感分解视图

    2026年3月13日
    2
  • 使用RenderControl方法把GridView控件导出到EXCEL

    使用RenderControl方法把GridView控件导出到EXCEL// 把GridView输出到Excel文件       privatevoidExportExcel(GridViewgridView,stringtitle,stringtitle2,stringfileName)       {           intnHideCols=0;           //如果不想输出出某列,将Visible

    2022年7月20日
    15

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号