使用PySpark读取时过滤实木复合地板文件

时间:2019-11-19 12:44:30

标签: python-3.x amazon-web-services apache-spark pyspark-sql amazon-emr

我在AWS s3中存储了庞大的分区镶木地板文件数据集,我想使用AWS EMR从每个月的数据中仅读取一个样本。我必须通过“ user_id”值过滤每个月的数据,例如,从100.000个用户(百万个)中选择数据,然后将汇总写回到s3。

我想出了如何使用EMR集群读写s3的方法,但是我在一个很小的数据集上进行了测试。对于真实的数据集,我需要过滤数据以进行处理。如何使用pyspark做到这一点?

1 个答案:

答案 0 :(得分:1)

Spark具有多个采样转换。 tp.method_id == :foo是您所需要的。参见this answer

如果您需要返回准确数量的结果,则必须(a)稍加采样,然后(b)使用df.sample(...)来获得准确的数量。

如果只处理小数而不是目标计数,则可以保存df.limit()