Sparkソースコードリーディング(1) - spark.textFile関数の引数
Apache Sparkのソースコードリーディングを記録
まずは公式サイトに記載されているWordCountの第一文から追っていきましょう
file = spark.textFile("hdfs://...")
このsparkというのはSparkContextクラスのインスタンスなので該当メソッドを調査
def textFile(path: String, minPartitions: Int = defaultMinPartitions): RDD[String] = { hadoopFile(path, classOf[TextInputFormat], classOf[LongWritable], classOf[Text], minPartitions).map(pair => pair._2.toString).setName(path) }
ふむふむpathはhdfsのパスを受け取り、minPartitionsはデフォルトを使用すると
デフォルトって何という話だが
def defaultMinPartitions: Int = math.min(defaultParallelism, 2)
とあり、defaultParallelismと2の小さい方となる
defaultParallelismはTaskSchedulerImplクラス内の関数になるのだが、並列数を定義するものである
local実行なら1、それ以上の並列なら並列数分だけの数を返す
要はdefaultMinPartitionsはlocal実行なら1だし、それ以外なら2が返ってくるものと思ってよさそう