@Service
public class MyService { public MyService(ThirdPartyClass thirdPartyClass){..}....}
假设我有1000行test.txt文件。我有单核处理器的单一机器人。这是我的理解火花如何在这里实现并行性
我的理解是否正确?
答案 0 :(得分:1)
对于本地文件,Spark会拆分文件的n
个块,其中n
是默认的并行级别,等于集群中的核心数量(例如,如果是local[4]
,它将是4)。
我们可以提供许多分区来覆盖这种行为:
textFile = sc.textFile("C://test.txt", 8) // will create 8 spark partitions.
我们可以检查分区:
textFile.partitions()
//Array[org.apache.spark.Partition] = Array(
org.apache.spark.rdd.HadoopPartition@cd0,
org.apache.spark.rdd.HadoopPartition@cd1,
org.apache.spark.rdd.HadoopPartition@cd2,
org.apache.spark.rdd.HadoopPartition@cd3,
org.apache.spark.rdd.HadoopPartition@cd4,
org.apache.spark.rdd.HadoopPartition@cd5,
org.apache.spark.rdd.HadoopPartition@cd6,
org.apache.spark.rdd.HadoopPartition@cd7
)
请注意,这是底层hadoop文件系统实现的行为。对于分布式文件系统,例如hdfs,Spark将使用所使用文件的分区级别。 Spark和Hadoop之间的交互是在 https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/rdd/HadoopRDD.scala