代码之家  ›  专栏  ›  技术社区  ›  rodrigocf

pyspark df上的迭代每次迭代都会变慢

  •  0
  • rodrigocf  · 技术社区  · 3 年前

    如果我有一个火花DF,我的理解是,在它被持久化或类似的东西之前,DF并没有真正实现,在所说的事情发生之前,它在理论上“只是一个解释计划”。例如,如果我有 df 并从中删除一些行,直到DF需要具体化,它实际上只是 df - subset1 ,如果我再删除一些行,它就是 df - subset1 - subset2

    我有一个用例,其中这是在 for 循环,并且每次迭代的执行时间一致地至少加倍。经过一些研究,在每个循环结束时都这样做,解决了问题:

    data = data.rdd.toDF(schema)
    

    就我而言,这条线大约需要1分钟 data 最初是具有30个字符串列的10MM行,并且每次迭代减少1MM行。

    1. 我的理解正确吗?
    2. 有更好的方法吗?
    0 回复  |  直到 3 年前