【问题标题】:How can we sample from a large data in PySpark quickly when we don't the the size of dataframe?当我们没有数据框的大小时,我们如何快速从 PySpark 中的大数据中采样?
【发布时间】:2021-05-03 19:14:01
【问题描述】:

我有两个 pyspark 数据框 tdffdf,其中 fdftdf 大得多。这些数据框的大小每天都在变化,我不知道。我想从fdf 中随机挑选数据来组成一个新的数据框rdf,其中rdf 的大小大约等于tdf 的大小。目前我有这些行:

tdf = tdf.count()
fdf = fdf.count()
sampling_fraction = float(tdf) / float(fdf)
rdf = fdf(sampling_fraction, SEED)

这些行产生正确的结果。但是当fdf 的大小增加时,fdf.count() 需要几天才能完成。你能推荐另一种在 PySpark 中更快的方法吗?

【问题讨论】:

标签: apache-spark pyspark apache-spark-sql


【解决方案1】:

您可以尝试从数据帧中采样以获得估计计数:

ratio = 0.01
fdf_estimate = fdf.sample(fraction=ratio).count() / ratio

您可以将比率更改为适当的值,以使其具有合理的性能。

【讨论】:

    猜你喜欢
    • 2019-12-01
    • 2020-06-10
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    相关资源
    最近更新 更多