计算http日志中的行数,全局行号未更新

时间:2019-05-23 14:56:44

标签: scala apache-spark

我正在尝试使用scala / spark解析http日志文件(一个目录中有488个文件)

scala> val logs2 = sc.textFile("D:/temp/tests/wwwlogs")
logs2: org.apache.spark.rdd.RDD[String] = D:/temp/tests/wwwlogs  
     MapPartitionsRDD[3] at textFile at <console>:24

scala> logs2.count
res1: Long = 230712

scala> logs2.filter(l => l.contains("92.50.64.234")).count()
res2: Long = 47

然后我手动编辑一个文件并添加以下行:

  

2017-12-31 03:48:32 GET / status full = true 80-92.50.64.234 Python-urllib / 2.7-404 0 2 416

scala> logs2.filter(l => l.contains("92.50.64.234")).count()
res3: Long = 48

很棒,但是我再次执行

scala> logs2.count
res4: Long = 230712

当我期望将230712 + 1添加到文件中时,这与行数相同。

为什么更新过滤器结果但不更新全局计数?

1 个答案:

答案 0 :(得分:0)

RDD已经启用缓存了吗?至于过滤器,也许不应用缓存。