【KNIME经验】依据固定值设置分段序号

步骤1. 如图所示,在KNIME中加入Table Creator节点。

步骤2. 在Table Creator节点中,双击编辑单元格,填入一列测试数据(亦可由Excel文件读入,或者通过Excel文件拷贝粘贴得到),其中含有若干属性值“户主”,代表新的一户记录的开始,下面接着记录了该户下面的人员情况。所有人员信息都依次在一列当中记录。

********************************************************************************
问题:如何依据固定的属性值(本例为“户主”),为所有的记录设置分段序号,出现“户主”记录的位置,恢复序号为1;对于该户的附属人员,按照出现的顺序赋予序号2,3,4...
********************************************************************************
思路:自然想到使用Rank或者Math Formula节点来获取ROWINDEX,获取基本序号。接着想到“户主”记录所在的位置,有其自身的行索引序号,如果将二者作差,就可以恢复“户主”位置的序号(得到0,再加1);对于其他的位置,则需要沿袭该位置从属的“户主”属性值所在位置的行索引序号。这即可以通过Missing Value节点实现,也可以像本例中,使用Moving Aggregation节点实现。
********************************************************************************

步骤3. 链接一个Rule Engine节点,在Expression框中,写下$column1$ = "户主" => $$ROWINDEX$$的语句,选择“Append Column”,保持列名“prediction”的默认设置(也可以根据需要更改列名)。经过该节点处理,属性值为“户主”的位置,将出现行索引序号(整型),其他的位置为空(Missing Value)。

步骤4. 链接一个Moving Aggregation节点,勾选“Cumulative computation”,在“Aggregation settings”标签页,“Available columns”框中,选择刚刚建立的“prediction”列,将其使用“add>>”按钮加入到聚合方法框中,选择聚合方法为“Maximum”,完成节点设置。点击“OK”按钮,退出并执行该节点,可以得到图片中蓝色框中的新的“Max*(prediction)”数据列。由于我们使用了逐步最大值聚合,当遇到“户主”序号的时候,就会加以保持,为其从属属性值加入相同的行索引序号。达到了我们在上文“思路”段落中提到的要求。

步骤5. 链接一个Math Formula节点,在Expression框中,写下$$ROWINDEX$$-$Max*(prediction)$+1,用行索引减去步骤 4 获得的“阶梯式”最大索引值(结合加1的修正),即为所求。

解释1. 何为KNIME?KNIME数据分析平台是一款强大开源的数据挖掘软件平台,可以固化数据处理的流程,在人与人,人与机器之间进行传递。

解释2. 使用Missing Value节点是如何完成步骤 4 的?原理相似,链接一个Missing Value节点,对其中的“Number(long)”类型数据,使用“Previous Value*”的缺失值填充方法,一样可以得到与步骤 4 结果相同的“阶梯式”最大索引值列。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Knime Spark是一种数据分析工具,它结合了Knime和Apache Spark两个强大的开源项目。Knime是一个基于图形界面的数据分析平台,而Apache Spark是一个用于大规模数据处理的开源集群计算框架。 通过将Knime与Spark集成在一起,Knime Spark能够实现更高效、更强大的数据处理和分析。它允许用户在Knime的可视化界面中创建工作流程,并利用Spark的分布式计算引擎来处理大规模数据集。 Knime Spark提供了一系列的节点(nodes),用户可以使用这些节点来进行数据的清洗、转换、建模、评估等操作。这些节点能够直接利用Spark分布式计算引擎,以并行和分布式的方式处理数据,从而提高处理速度和效率。 与传统的数据处理工具相比,Knime Spark具有以下优势: 1. 可扩展性:Spark的分布式计算引擎使得Knime Spark能够处理大规模数据集。用户可以根据需求增加或减少计算资源,满足不同规模数据处理的需求。 2. 灵活性:Knime Spark允许用户使用Knime的图形界面创建工作流程,不需要编写复杂的代码。同时,用户也可以通过自定义节点来扩展Knime Spark的功能,以适应各种数据处理任务。 3. 高性能:通过利用Spark的分布式计算引擎,Knime Spark能够以并行和分布式的方式处理数据,从而提高处理速度和效率。用户可以利用Spark的各种优化技术,如数据分区和内存缓存,进一步提升性能。 4. 强大的生态系统:Knime Spark集成了Apache Spark的生态系统,用户可以利用Spark提供的各种库和工具进行数据分析和建模。同时,Knime Spark也支持与其他数据处理和建模工具的集成,如Python、R等。 综上所述,Knime Spark是一个结合了Knime和Spark两个开源项目的数据分析工具,它能够提供高效、灵活和高性能的数据处理和分析能力。无论是处理小规模数据还是大规模数据,Knime Spark都能够满足用户的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值