【问题标题】:Do i need to broadcast a dataframe in spark SQL every iteration?我是否需要在每次迭代时在 spark SQL 中广播一个数据帧?
【发布时间】:2018-03-19 17:51:10
【问题描述】:

我正在使用 Spark SQL 对具有循环不变数据帧的迭代进行连接。我想知道是否需要在每次迭代中广播它,或者我只是在第一次迭代中广播它。

【问题讨论】:

    标签: apache-spark-sql


    【解决方案1】:

    实际上如果数据帧足够小,spark 广播它,你不必这样做

      Import org.apache.spark.sql.functions.broadcast
    
       bigDF       
       .join(broadcast(smalldf), Seq("field"), "left_outer")
    

    好的,我明白了,那么您必须广播每个循环,因为新的 df 到达工作人员,您一旦完成就会清理它。

    【讨论】:

    • 我想在内存中保持相同的DF直到程序结束。
    • 无论加入CachedDF的df比它小还是大,我都想在内存中保持相同的CachedDF。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 2016-05-16
    • 2011-03-01
    • 2019-03-16
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    相关资源
    最近更新 更多