在 Scala 中计算过滤记录
Count filtered records in scala
由于我是 scala 的新手,这个问题对所有人来说可能看起来都很基础..
我有一个名为 data.txt 的文件,其中包含如下内容:
xxx.lss.yyy23.com-->mailuogwprd23.lss.com,Hub,12689,14.98904563,1549
xxx.lss.yyy33.com-->mailusrhubprd33.lss.com,Outbound,72996,1.673717588,1949
xxx.lss.yyy33.com-->mailuogwprd33.lss.com,Hub,12133,14.9381027,664
xxx.lss.yyy53.com-->mailusrhubprd53.lss.com,Outbound,72996,1.673717588,3071
我想拆分行并根据 xxx.lss 中的数字查找记录。yyy23.com
val data = io.Source.fromFile("data.txt").getLines().map { x => (x.split("-->"))}.map { r => r(0) }.mkString("\n")
这给了我
xxx.lss.yyy23.com
xxx.lss.yyy33.com
xxx.lss.yyy33.com
xxx.lss.yyy53.com
这就是我要计算的准确值...
data.count { x => x.contains("33")}
如何获取不包含 33...
的记录数
下面会给出包含“33”的行数:
data.split("\n").count(a => a.contains("33"))
您上面的内容不起作用的原因是您需要再次将 data
拆分为一个字符串数组。您之前的语句实际上使用 mkstring
使用换行符将结果连接成一个字符串作为分隔符,因此您不能真正 运行 收集操作,例如 count on it.
以下将用于获取不包含“33”的行:
data.split("\n").count(a => !a.contains("33"))
在这种情况下,您只需要否定包含操作。
由于我是 scala 的新手,这个问题对所有人来说可能看起来都很基础..
我有一个名为 data.txt 的文件,其中包含如下内容:
xxx.lss.yyy23.com-->mailuogwprd23.lss.com,Hub,12689,14.98904563,1549
xxx.lss.yyy33.com-->mailusrhubprd33.lss.com,Outbound,72996,1.673717588,1949
xxx.lss.yyy33.com-->mailuogwprd33.lss.com,Hub,12133,14.9381027,664
xxx.lss.yyy53.com-->mailusrhubprd53.lss.com,Outbound,72996,1.673717588,3071
我想拆分行并根据 xxx.lss 中的数字查找记录。yyy23.com
val data = io.Source.fromFile("data.txt").getLines().map { x => (x.split("-->"))}.map { r => r(0) }.mkString("\n")
这给了我
xxx.lss.yyy23.com
xxx.lss.yyy33.com
xxx.lss.yyy33.com
xxx.lss.yyy53.com
这就是我要计算的准确值...
data.count { x => x.contains("33")}
如何获取不包含 33...
的记录数下面会给出包含“33”的行数:
data.split("\n").count(a => a.contains("33"))
您上面的内容不起作用的原因是您需要再次将 data
拆分为一个字符串数组。您之前的语句实际上使用 mkstring
使用换行符将结果连接成一个字符串作为分隔符,因此您不能真正 运行 收集操作,例如 count on it.
以下将用于获取不包含“33”的行:
data.split("\n").count(a => !a.contains("33"))
在这种情况下,您只需要否定包含操作。