2017-05-10 15 views
2

スパークデータフレームのパーティション数に関する質問があります。ハイブテーブルからデータを読み込んで作成したスパークデータフレームのパーティション数

カラム(名前、年齢、ID、場所)を持つハイブテーブル(従業員)がある場合。

CREATE TABLE employee (name String, age String, id Int) PARTITIONED BY (location String);

従業員テーブルには10点の異なる場所を持っている場合。したがって、データはHDFSの10個のパーティションに分割されます。

私はHiveテーブル(従業員)のデータ全体を読み込んでSparkデータフレーム(df)を作成します。

データフレーム(df)にSparkによって作成されるパーティションの数はいくつですか?

df.rdd.partitions.size = ??

答えて

2

パーティションは、HDFSのブロックサイズに応じて作成されます。

あなたは、単一RDDとして10の区画を読んでいると、ブロックサイズはパーティションの128メガバイト、その後

なしの場合=(MB単位(10のパーティションのサイズ))/ 128メガバイト

が保存されます想像してみてHDFS上で

次のリンクを参照してください:

http://www.bigsynapse.com/spark-input-output

+0

はい、私はHDFS内のファイルのブロック数は10個のブロックであるかという事実を認識しています(たとえば64メガバイトは、HDFSのブロックサイズである場合。ファイルサイズが640MBの場合)。この場合、Spark rddは、HDFSからこのファイルを読み込むことによって作成されます。 Spark rddには10個のパーティションがあります。 – Sri

+1

しかし、私は1つの列で区切られたハイブテーブルについて話しています。これは、Sparkがハイブテーブルを読み取って作成されたデータフレームのパーティション数を決定する要因となりますか? – Sri

関連する問題