小编Lar*_*ers的帖子

为什么案例类被命名为"案例"?

"案例是" 特定情况一个例子; 发生事情的一个例子 '.

所以我的问题是 - 为什么Scala'case'类被命名为'case'?有什么意义?为什么它是"案例",而不是"数据"类或其他什么?什么意思是'案例'在那.. ..案例:)

scala case-class

6
推荐指数
1
解决办法
148
查看次数

Spark 广播连接将数据加载到驱动程序

据我所知,当Spark执行广播连接时,它首先将最小的(广播)RDD收集到驱动程序以从中创建广播变量,然后才将其上传到每个目标节点。

有时,如果广播 RDD > Spark.driver.memory,会导致驱动程序内存流出。

问题:为什么它会以这种方式工作?仅在目标节点之间混洗广播数据会更有效,因为混洗的数据量是相同的,但我们可以避免驱动程序溢出。

示例:假设您有 3 个节点,每个节点上要广播 1 GB 的数据,每个节点的吞吐量为 1 GB/s。

Spark 方法 - 每个节点必须向驱动程序上传其数据片段 (1gb) 并下载广播变量 (3 * 1g = 3gb),因此每个节点总共应传输 4 GB,并且需要 4 秒。

随机播放方法 - 一个节点必须将 1GB 上传到其他 2 个节点,并从这些节点下载 1GB。同样,总量为 4 GB,需要 4 秒。

apache-spark

6
推荐指数
1
解决办法
3964
查看次数

标签 统计

apache-spark ×1

case-class ×1

scala ×1