Scala - 从文件中打印每行中的特定字段

时间:2016-07-21 02:28:52

标签: scala

在学习的过程中,我正在尝试阅读网络日志并从中提取少量字段。网络日志将如下所示

147.172.225.10 - 16401 [16/Sep/2013:23:52:35 +0100] "GET /KBDOC-00057.html HTTP/1.0" 200 11761 "http://www.newbie.com"  "test F20L"
147.172.225.10 - 16401 [16/Sep/2013:23:52:35 +0100] "GET /theme.css HTTP/1.0" 200 12353 "http://www.newbie.com"  "test Mobile Browser Sorrento F20L"
23.53.29.101 - 32693 [16/Sep/2013:23:49:50 +0100] "GET /KBDOC-00035.html HTTP/1.0" 200 9337 "http://www.newbie.com"  "test Mobile Browser i3"

我需要从日志中提取IP地址和用户ID(第3个字段)并打印为

147.172.225.10/16401
147.172.225.10/16401
23.53.29.101/32693

如果我必须使用map或flatMap,有人可以帮助我如何让我知道是否有更好的方法来实现它。在此先感谢!!

2 个答案:

答案 0 :(得分:0)

对于weblog中的每一行(作为字符串),您可以在空白字符的基础上使用split方法,并且在拆分后将返回一个字符串数组,通过它,您可以提取所需的值。

lines map { line =>
  val lineArray = line.split(" ")
  lineArray(0), lineArray(2)
}

答案 1 :(得分:0)

谢谢大家,我在下面用来获得所需的结果。

{{1}}