2016-05-10 5 views
1

私は、spark(scala)を使ってHDFSからファイルを読み込んでいます。 HDFSのブロックサイズは64 MBです。spark RDDでパーティションを作成する方法

HDFSファイルのサイズが130 MBであるとします。私は

scala> val distFile = sc.textFile("hdfs://user/cloudera/data.txt") 

RDD

ベースに作成されているどのように多くのパーティション知っていただきたいと思い

は、それが真の無いことです。パーティションのサイズはブロックサイズに基づいて決定されますか?

上記の場合、パーティションの数は3ですか?

答えて

3

Here入力用のパーティション計算ロジックを記述する良い記事です。

HDFSブロックサイズは、パーティションの最大サイズです。だからあなたの例では、パーティションの最小は、あなたがさらにsc.textFile(inputPath,numPartitions)

のようsc.textFileへのパラメータも別の設定mapreduce.input.fileinputformat.split.minsize劇としてことを渡すことで、パーティションの数を増やすことができます。3.

partitions = ceiling(input size/block size) 

になります役割。パーティションのサイズを増やす(そしてパーティションの数を減らす)ように設定できます。したがって、mapreduce.input.fileinputformat.split.minsize130MBと設定すると、1つのパーティションしか得られません。

+0

よく分かります。あなたの説明のおかげで –

1

あなたがdistFile.partitions.size

を実行し、パーティション

の数を確認することができます

関連する問題