KNIME 模块

> 之前休假了, 嗯, 我们继续

欢迎关注公众号 数据分析指北

数据分析指北 - KNIME 模块(Data Access类型模块之一IO模块集合)

Photo by Samuel Zeller on Unsplash

微信公众号:数据分析指北

Data Access类型模块

IO模块集合简述

Read部分

Other部分

File Handling部分

上一节我们讲了 KNIME 模块的一些基础知识,包括模块的图示、颜色类别、端口类别、workflow 、怎样提高 workflow 的可读性以及 metanode 和 flow variable 的概念。这些基础知识都是非常重要的部分,其中绝大部分内容通过长时间的使用 KNIME 都可以掌握,只有“怎样提高 workflow 的可读性”和“ metanode 的使用”需要刻意练习才能掌握,而这两部分内容,也是 KNIME 水平从中阶到高阶的必经之路。

KNIME 的 Node Repository

在 KNIME 的 Node Repository 中有很多模块,如果装了一些扩展的话,模块会更加丰富。我们在这里将这些节点类型统一组织成了Data Access类型、Transformation类型、Analysis & Data Mining类型、Visualization类型以及Deployment类型,这样在逻辑上将会更加清晰,也符合一般的数据分析的大致步骤。我们先看Data Access类型模块。

Data Access类型模块

Data Access类型模块主要有文件相关模块、数据库相关模块、以及网页相关模块。其中文件相关模块中的CSV模块以及数据库,我们已经在

基础(基础数据操作之二,读取数据源)

中有简要提及。初次之外,KNIME 的 Node Repository中的IO模块集合、Database模块集合、Tools & Services模块集合,都可以部分归类到Data Access类型中来。

IO模块集合简述

Node Repository中的IO模块集合

IO模块在整体上分为Read、Write、Other、File Handling以及Cache几个部分,其中的Write部分,我们不认为它算是Data Access类型模块,而认为它是Deployment类型模块,略去不讲。

Read部分

对于Read部分,主要涉及到各种实体文件的读取。

IO模块集合中的Read部分

[重点:;难度:]对于Excel文件来说,如果你已经确定要读取Excel文件的哪个表,那么我们就可以直接使用Excel Reader(XLS),直接在节点中配置读取,其配置选择其实和CSV reader的配置差不太多,除了一些标准的配置之外–比如Column Name都从哪里取、Row Id要不要自动生成,其他选项都集中在配置对于异常情况的处理;如果你需要将Excel中所有的表的内容都读取出来,那么你可以尝试先使用Read Excel Sheet Names (XLS)节点,读出这些表的名字,然后再设置一个循环,使用Excel Reader(XLS)将每个表中的内容读取出来,可参考下图结构。

读取Excel文件中的所有内容

[重点:;难度:]CSV Reader之前有提及,在这里略去不讲。

File Reader其实是一个通用版的文件读取工具,甚至可以用它来读取CSV文件,只不过配置项要更多一些。

ARFF reader是机器学习中的一种特定文件格式,这个格式主要是随着 Weka 发展出来的,简要来说,就是它除了记录具体的数据之外,还详细记录了数据的格式、来源等一系列信息,对于经典的Iris数据来说,ARFF就是这样记录的,一望即知:

Line Reader是用来将文件一行一行读出来的模块,特别像Python中的函数。

[重点:;难度:]Table Reader这个模块是用来读取KNIME自定义的Table格式的(文件名以),是读取KNIME的Table Writer模块输出的文件的。这个文件和ARFF文件的目的相同,就是在这个文件中,尽量的包含和这个数据文件相关的其他元信息(meta information),比如标记出的数据颜色信息(参见泰坦尼克沉船数据分析之一)中对数据进行颜色标记的示范)等等,以及对数据文件进行压缩优化,以提升读取效率。因为是 KNIME 自己的格式,如何读写已经做了约定,所以基本不需要做什么配置就可以使用,但唯一考虑的一点就是,如果要迁移到KNIME以外的平台使用,可能会遇到一些麻烦。

PMML Reader是用来读取PMML(Predictive Model Markup Language预测模型标记语言)文件的,这种文件主要是用来记录一些机器学习中的模型以及模型参数的。

[重点:;难度:]List Files作用是列出所给路径下有哪些文件。比如需要读取一个文件夹下所有的Excel文件,那么就需要用到这个模块了。

另外的几个模块用的非常少,就略过不谈了。

总的来说,Read部分,需要重点掌握CSV文件以及Excel文件的读取模块。除了上面列出的模块,如果想要读取Google Sheets,也是可以的,只不过要安装相应的扩展,以及搭建相应的梯子。

Other部分

IO模块集合中的Other部分

Table Creator其实相当于一个小型的Excel,打开之后直接编造数据,但其实用到的地方不多,能用它的地方,大部分情况下可以使用Excel代替。

Data Generator模块可以按照要求生成一些随机数据。

[重点:;难度:]Create Table Structure可以生成一个没有数据的表结构,主要是配合KNIME的自动生成报告功能使用的,简单举例来说,就是可以初始化生成一个最终报告要求的,有着XX列、YY列、ZZ列的空表,而在workflow的其他部分,只生成了一个具有YY列、ZZ列的表,那么就可以将这个表追加到之前的空表中,进而嵌入到最终的报告中。

Create Temp Dir可以用来生成临时目录,和Linux系统编程中的的功能类似,在某些特定情况下会使用到,比如我们想要临时生成一个sqlite文件进行读写,但又不想永久保存这个文件,那么就可以使用这个模块来建立一个临时目录存放这个sqlite文件。

Extract System Properties和Extract Context Properties就是获取一些系统信息,以及一些当前workflow的信息了,应用的地方也比较有限,但它们却又是 KNIME 模块完整性的一部分。

File Handling部分

IO模块集合中的File Handling部分

Binary Objects类的模块主要是配合数据库使用的,比如我们通过数据生成图片,然后把图片转换成Binary Objects,再将Binary Objects存放在数据库中。

[重点:;难度:]Remote中的一些模块,主要是用来和远程服务器进行交互的,不管那个服务器是ftp、http,还是只开放了ssh的相应端口,我们都可以对远程服务器上的文件进行下载、分析处理、上传操作。下面是一个http connection模块的局部例子。

http connection的局部例子

[重点:;难度:]Create Directory, Delete Files, Download, Download/Upload from List, List Remote Files, Upload这几个模块的名字含义比较明确了,不再赘述。

[重点:;难度:]URI类的模块。URI是uniform resource identifier,统一资源标识符的缩写。我们常说的某某网站地址,或是某某网站中的某一个图片地址,称为URL,是(uniform resource locator)统一资源定位器的缩写。URL是URI的子集,URI是一个更通用的概念,比如在Windows中,就是一个URI,它定位了这个视频文件(资源)如何去访问。URI这几个模块,在我们需要操作资源的各种路径的时候,就会需要它们。

ZIP相关模块,一般是配合多个压缩文件使用的。比如在一大堆的压缩文件中,我们可能需要按顺序解压压缩文件,然后再分析处理解压缩之后的文件,在这种时候,我们就需要ZIP这个模块了。需要注意的是,ZIP相关的这两个模块,支持众多的开源压缩方法,比如tar.gz, zip等,但是对于闭源的rar压缩包,它们是不支持的。

COPY/MOVE Files模块,复制、移动模块再不赘述。

File Meta Info模块,可以列出相应文件是否存在、大小、权限等相关内容。

Find MIME-Type模块以及List MIME-Types模块,主要是配合HTTP使用的,一般在upload时,需要在http request中写上mime type信息。

回头聊

反馈,转发或赞赏?

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181002A027NQ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券