Apache-pig-pigstore
提供:Dev Guides
Apache Pig-PigStorage()
- PigStorage()関数は、データを構造化テキストファイルとしてロードおよび保存します。 タプルの各エンティティをパラメーターとして区切る区切り文字を使用します。 デフォルトでは、パラメータとして *’\ t’ を取ります。
構文
以下は、* PigStorage()*関数の構文です。
grunt> PigStorage(field_delimiter)
例
*/data/* という名前のHDFSディレクトリに *student_data.txt* という名前のファイルがあり、次の内容があるとします。
001,Rajiv,Reddy,9848022337,Hyderabad
002,siddarth,Battacharya,9848022338,Kolkata
003,Rajesh,Khanna,9848022339,Delhi
004,Preethi,Agarwal,9848022330,Pune
005,Trupthi,Mohanthy,9848022336,Bhuwaneshwar
006,Archana,Mishra,9848022335,Chennai.
以下に示すように、PigStorage関数を使用してデータをロードできます。
grunt> student = LOAD 'hdfs://localhost:9000/pig_data/student_data.txt' USING PigStorage(',')
as ( id:int, firstname:chararray, lastname:chararray, phone:chararray, city:chararray );
上記の例では、コンマ*( ‘、’)区切り文字を使用していることがわかりました。 したがって、(、)*を使用してレコードの値を分離しました。
同様に、以下に示すように、* PigStorage()*関数を使用して、HDFSディレクトリにデータを保存できます。
grunt> STORE student INTO ' hdfs://localhost:9000/pig_Output/' USING PigStorage (',');
これにより、指定されたディレクトリにデータが保存されます。 以下に示すように、データを確認できます。
検証
以下に示すように、保存されたデータを確認できます。 まず、以下に示すように ls コマンドを使用して、 pig_output という名前のディレクトリ内のファイルをリストします。
$ hdfs dfs -ls 'hdfs://localhost:9000/pig_Output/'
Found 2 items
rw-r--r- 1 Hadoop supergroup 0 2015-10-05 13:03 hdfs://localhost:9000/pig_Output/_SUCCESS
rw-r--r- 1 Hadoop supergroup 224 2015-10-05 13:03 hdfs://localhost:9000/pig_Output/part-m-00000
*Store* ステートメントの実行後に2つのファイルが作成されたことを確認できます。
次に、 cat コマンドを使用して、 part-m-00000 という名前のファイルの内容を以下に示すようにリストします。
$ hdfs dfs -cat 'hdfs://localhost:9000/pig_Output/part-m-00000'
1,Rajiv,Reddy,9848022337,Hyderabad
2,siddarth,Battacharya,9848022338,Kolkata
3,Rajesh,Khanna,9848022339,Delhi
4,Preethi,Agarwal,9848022330,Pune
5,Trupthi,Mohanthy,9848022336,Bhuwaneshwar
6,Archana,Mishra,9848022335,Chennai