用 pentaho 计算每列空值的数量
Posted
技术标签:
【中文标题】用 pentaho 计算每列空值的数量【英文标题】:Count the number of null value per column with pentaho 【发布时间】:2016-02-12 17:23:04 【问题描述】:我有一个包含超过 60 列和 2 000 000 行的 csv 文件,我正在尝试计算每个变量(每列)的空值数量,然后对新行求和以获得整个 csv 中空值的总数。例如,如果我们在输入中得到这个文件:
我们期望输出中的这个其他文件:
我知道如何计算每行空值的数量,但是我不知道如何计算每列空值的数量。
【问题讨论】:
【参考方案1】:必须有更好的方法来做到这一点,但我做了一个非常讨厌的 javascript 来完成这项工作。
它对于不同的列类型有一些问题,因为它没有设置列类型。 (它应该将所有列设置为整数,但我不知道这是否可以从 JavaScript 中实现。)
您必须先运行Identify last row in a stream
,然后将其保存到last
列(或更改脚本)。
var nulls;
var seen;
if (!seen)
// Initialize array
seen = 1;
nulls = [];
for (var i = 0; i < getInputRowMeta().size(); i++)
nulls[i] = 0;
for (var i = 0; i < getInputRowMeta().size(); i++)
if (row[i] == null)
nulls[i] += 1;
// Hack to find empty strings
else if (getInputRowMeta().getValueMeta(i).getType() == 2 && row[i].length() == 0)
nulls[i] += 1;
// Don't store any values
trans_Status = SKIP_TRANSFORMATION;
// Only store the nulls at the last row
if (last == true)
putRow(nulls);
【讨论】:
我无法将脚本的结果放到excel文件中,出现错误:postimg.org/image/m7pgfepfh 试试这个:count_nulls.ktr【参考方案2】:请将以下步骤拖放到画布中。
step1:添加常量:创建一个名为constant且value = 1的变量
第二步:过滤行:你有过滤所有列的空值。
step3: Group by:这里按字段常量变量分组 聚合部分,我们必须指定剩余的列,如 ct_inc。类型是 Number of Values (N)
如果您有任何疑问,请随时提出。
skype_id : panabakavenkatesh
【讨论】:
以上是关于用 pentaho 计算每列空值的数量的主要内容,如果未能解决你的问题,请参考以下文章
access中查询出来值的为空,如何将空值改为0,具体表达式是啥,从啥地方输入表达式,多谢