我在AWS s3中存储了庞大的分区镶木地板文件数据集,我想使用AWS EMR从每个月的数据中仅读取一个样本。我必须通过“ user_id”值过滤每个月的数据,例如,从100.000个用户(百万个)中选择数据,然后将汇总写回到s3。
我想出了如何使用EMR集群读写s3的方法,但是我在一个很小的数据集上进行了测试。对于真实的数据集,我需要过滤数据以进行处理。如何使用pyspark做到这一点?
答案 0 :(得分:1)
Spark具有多个采样转换。 tp.method_id == :foo
是您所需要的。参见this answer。
如果您需要返回准确数量的结果,则必须(a)稍加采样,然后(b)使用df.sample(...)
来获得准确的数量。
如果只处理小数而不是目标计数,则可以保存df.limit()
。