用于带有if语句的RDD查询的lambda

时间:2015-06-17 02:36:43

标签: python-2.7 pyspark

我正在创建一个查询访问日志的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

提取日志子集的最佳/最有效方法是什么?

1 个答案:

答案 0 :(得分:2)

也许过滤器有帮助吗?

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

我认为你编写它的方式的问题是: 使用map时,不能删除行,每行都映射到其他行。所以没有“通过”,行数不会改变。