Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala Spark中的并行集合_Scala_Apache Spark_Bigdata - Fatal编程技术网

Scala Spark中的并行集合

Scala Spark中的并行集合,scala,apache-spark,bigdata,Scala,Apache Spark,Bigdata,Spark中“并行集合”的概念是什么?这个概念如何提高作业的整体性能?此外,分区应该如何配置?Scala语言中提供了并行集合,这是一种在Scala中并行化数据处理的简单方法。其基本思想是,当您执行诸如map、filter等操作时。。。对于集合,可以使用线程池对其进行并行化。这种类型的并行化称为数据并行化,因为它基于数据本身。这是在JVM中本地发生的,Scala将使用JVM可用的尽可能多的线程 另一方面,Spark基于RDD,RDD是表示分布式数据集的抽象。与Scala并行集合不同,此数据集分布在

Spark中“并行集合”的概念是什么?这个概念如何提高作业的整体性能?此外,分区应该如何配置?

Scala语言中提供了并行集合,这是一种在Scala中并行化数据处理的简单方法。其基本思想是,当您执行诸如
map
filter
等操作时。。。对于集合,可以使用线程池对其进行并行化。这种类型的并行化称为数据并行化,因为它基于数据本身。这是在JVM中本地发生的,Scala将使用JVM可用的尽可能多的线程

另一方面,Spark基于RDD,RDD是表示分布式数据集的抽象。与Scala并行集合不同,此数据集分布在多个节点中。Spark也基于数据并行,但这次是分布式数据并行。这使您可以比在单个JVM中进行更多的并行化,但它还引入了与数据洗牌相关的其他问题

总之,Spark实现了一个分布式数据并行系统,因此每次执行
映射
过滤器
等时。。。您正在做一些类似于Scala并行集合的事情,但是是以分布式方式进行的。Spark中的并行单位也是分区,而Scala集合中的并行单位是每一行


您可以始终在Spark任务中使用Scala并行集合来在Spark任务中进行并行化,但不一定会看到性能的提高,特别是如果您的数据已经均匀地分布在RDD中,并且每个任务都需要大约相同的计算资源来执行。

@Andreytukin您的意见是什么?@Andreytukin您是对的,我概括得太多了,我已经对我想说的内容进行了编辑,以便更准确地说明确保使用parallelize()方法,因为一旦并行到分区,任何转换都是在分区上并行完成的。