Hadoopのマルチファイル読み込み

Hadoopは複数のファイルの中身を読み取ることができます。Hadoopではファイルの読み取り方法を指定するためにInputFormatを使用できます。よく使用されるInputFormatにはTextInputFormat、KeyValueTextInputFormat、SequenceFileInputFormatなどがあります。

テキストファイルを行ごとに、各行が1レコードとして読み込むデフォルトの入力フォーマットはTextInputFormatです。各行をタブやスペースで区切ってキーと値に分割する入力フォーマットはKeyValueTextInputFormatです。キーと値をシリアライズして保存するファイル形式であるシーケンスファイルを読み込む入力フォーマットはSequenceFileInputFormatです。

Hadoop で複数のファイルを読み込む際には、入力パスを指定することで複数のファイルを扱うことができます。入力パスは、ファイルかディレクトリを指定できます。入力パスがディレクトリの場合、Hadoop はそのディレクトリ内のすべてのファイルを処理します。ワイルドカード文字を使用して、複数のファイルを指定できます。たとえば、「input/*」は、input ディレクトリ内のすべてのファイルを読み込むことを意味します。

なお、Hadoopでは複数のファイルを処理するとき、入力スプリット(InputSplit)に分割し、1つのInputSplitが1つのMapタスクに対応します。このため、複数のファイルを処理する場合でも、各ファイルは複数のInputSplitに分割して処理されます。

bannerAds