【问题标题】:How to execute a groupby and count fastly on Spark in Python?如何在 Python 中执行 groupby 并在 Spark 上快速计数?
【发布时间】:2020-08-14 19:02:49
【问题描述】:

我已经尝试在 Spark DataFrame 上执行 GroupBy 和 count() 很长时间了,但是处理起来需要很长时间......

处理下面的行大约需要 13 秒。从我的角度来看,我认为这需要太多时间,但我不知道如何减少处理时间。

matched.limit(100).groupBy('Date','Period').agg(count("*").alias('cnt')).show()

我在 Spark 2.4 上运行,配置如下: 驱动程序:2 个 vCPU 8 GB RAM 10 个执行器:2 个 vCPU 8 GB RAM

谁能告诉我如何解决这个问题?

【问题讨论】:

  • 你有多少行?
  • @Lamanus 我无法确切地说出我从未结束过这个过程。我试过 df.count() 但我卡住了。
  • 哦……太糟糕了。可以拆分文件吗?文件有多大?
  • 我从未尝试过,但我知道行数应该低于 7000 万,我认为处理 count() 不应该花费太多时间。
  • 是的,一切正常。我已经根据位置过滤了数据,不超过 30 秒...

标签: python apache-spark


【解决方案1】:

我认为这是正确的方法。花费时间取决于有多少行。

df.groupBy('Date', 'Period').count().show(10, False)

【讨论】:

    猜你喜欢
    • 2023-04-08
    • 2020-07-07
    • 2021-05-08
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    • 1970-01-01
    • 2017-10-31
    • 1970-01-01
    相关资源
    最近更新 更多