带有 if 语句的 RDD 查询的 lambda

lambda for RDD query with if statement

我正在创建一个查询访问日志的 RDD。我想提取所有 404 错误(日志是可以查询的对象。我正在使用这段代码,但似乎我不能在 lambda 语句中使用 pass:

badRecords = (access_logs.map(lambda log: log if log.response_code == 404 else pass))
print 'Found %d 404 URLs' % badRecords.count()

根据 response_code

提取日志子集的 best/most 有效方法是什么

也许过滤器会有帮助?

badRecords = access_logs.filter(lambda log: log.response_code == 404)

我认为你写的方式有问题: 使用地图时,您不能删除行,每一行都映射到其他行。所以没有"pass",行数也不会变。