我有一个csv文件包含超过60列和2 000 000行,我试图计算每个变量(每列)的空值数量,然后做这个新行的总和,以获得整个csv中空值的总数。例如,如果我们得到了在输入这个文件: 用pentaho计算每列的空值数
我们预计输出这个其他的文件:
我知道如何计算每行空值的数量,但是,我没有”弄清楚如何计算每列的空值数量。
我有一个csv文件包含超过60列和2 000 000行,我试图计算每个变量(每列)的空值数量,然后做这个新行的总和,以获得整个csv中空值的总数。例如,如果我们得到了在输入这个文件: 用pentaho计算每列的空值数
我们预计输出这个其他的文件:
我知道如何计算每行空值的数量,但是,我没有”弄清楚如何计算每列的空值数量。
必须有一个更好的方式来做到这一点,但我做了一个非常讨厌的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);
}
请将以下步骤拖放到画布上。
第一步:添加常量:创建一个变量称为常量和值= 1
第二步:筛选行:你有所有列的过滤空值。
第三步:集团通过:通过现场常数变量 聚集部分群体在这里我们必须指定其余列像ct_inc.And类型是值的数量(N)
如果您有任何疑问,感觉随意问。
skype_id:panabakavenkatesh
我不能把在Excel文件中的脚本的结果,我得到了一个错误:http://postimg.org/image/m7pgfepfh/ – mel
试试这个:[count_nulls.ktr]( https://www.dropbox.com/s/2ew8euu0old0q8t/count_null_cols.ktr?dl=0) – bolav