【发布时间】:2018-03-17 03:58:12
【问题描述】:
我已经将一个数据集导入到 Juputer notebook/PySpark 中通过 EMR 进行处理,例如:
我想在使用过滤器功能之前清理数据。这包括:
- 删除空白行或“0”或不适用的成本或日期。我认为过滤器类似于:.filter(lambda (a,b,c,d): b = ?, c % 1 == c, d = ?)。我不确定如何过滤水果并储存在这里。
- 删除不正确的值,例如“3”不是水果名称。这对于数字来说很容易(只是数字 % 1 == 数字),但我不确定它会如何过滤掉这些单词。
- 删除统计异常值的行,即与平均值相差 3 个标准差的行。所以这里的单元格 C4 显然需要删除,但我不确定如何将此逻辑合并到过滤器中。
我需要一次执行一个过滤器,还是有办法一次性过滤数据集(以 lambda 表示法)?
或者,编写一个 Spark SQL 查询是否更容易,而不是在“where”子句中有许多过滤器(但是上面的 #3 仍然难以用 SQL 编写)。
【问题讨论】:
-
可以给出多个条件。看到这个stackoverflow.com/questions/37707305/…
-
是的,这是针对“where”子句的。但我想更传统,使用 filter/map/reduce 方法。
标签: python pyspark elastic-map-reduce