Dataframe 在Spark中广播数据帧时会出现哪些缺点?
我知道,当试图最大限度地减少节点间的数据混乱时,广播变得非常有用。例如,在下面的代码中,我向航班广播airports_df,以尽量减少加入操作期间的混乱Dataframe 在Spark中广播数据帧时会出现哪些缺点?,dataframe,apache-spark,optimization,shuffle,broadcasting,Dataframe,Apache Spark,Optimization,Shuffle,Broadcasting,我知道,当试图最大限度地减少节点间的数据混乱时,广播变得非常有用。例如,在下面的代码中,我向航班广播airports_df,以尽量减少加入操作期间的混乱 broadcast_df = flights_df.join(broadcast(airports_df), \ flights_df["Destination Airport"] == airports_df["IATA"] ) 1.)现在,广播不需要在我的工作节点上增加存储空间吗?广播的df将驻留在内存中吗?如果它太大而无法保存在员工的记
broadcast_df = flights_df.join(broadcast(airports_df), \
flights_df["Destination Airport"] == airports_df["IATA"] )
1.)现在,广播不需要在我的工作节点上增加存储空间吗?广播的df将驻留在内存中吗?如果它太大而无法保存在员工的记忆中怎么办
2.)广播会导致I/O瓶颈吗 当广播的df足够小,可以放入内存时,您应该使用广播,如果广播的df比您想要加入的df小得多,那么与随机操作相比,您将得到更少的I/O。默认情况下,Spark使用10MB的阈值来确定df是否适合广播,并且可以自己进行优化。当然,阈值是可配置的。我在DFs上使用的广播在合理的情况下达到数十甚至数百mb(即另一个df达到数十GB甚至更多)。
所以最终都要权衡了…为了回答你的问题
编辑针对您的问题的答案,希望对您有所帮助。