例: HCatalog テーブルを作成して Pig を使用して書き込む - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

例: HCatalog テーブルを作成して Pig を使用して書き込む

HCatalog テーブルを作成し、Amazon S3 のデータソースを使う HCatStorer の方法で、Apache Pigを使用してテーブルに書き込むことができます。HCatalogでは、直接書き込みを無効にする必要があります。無効にしないと操作が警告なしに失敗します。および mapred.output.direct.NativeS3FileSystem 構成の両方を、 mapred.output.direct.EmrFileSystem 分類を使用することで、 false またはGruntシェル内から mapred-site 手動で設定します。次の例では、HCat CLI を使用して作成されたテーブルと、Amazon S3 内のサンプルデータファイルからテーブルに値を設定するために Grunt シェルで実行されるコマンドを示しています。

この例を実行するには、SSH を使用してマスターノードに接続します

次のコンテンツで HCatalog スクリプトファイル wikicount.q を作成します。これにより、wikicount という名前の HCatalog テーブルが作成されます。

CREATE EXTERNAL TABLE IF NOT EXISTS wikicount( col1 string, col2 bigint ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001' STORED AS ORC LOCATION 's3://amzn-s3-demo-bucket/hcat/wikicount';

HCat CLIコマンドを使用してファイルからスクリプトを実行します。

hcat -f wikicount.q

次に、 -useHCatalog オプションでGruntシェルを起動し、直接書き込みを無効にするように構成を設定し、S3の場所からデータを読み込み、その結果をwikicountテーブルに書き込みます。

pig -useHCatalog SET mapred.output.direct.NativeS3FileSystem false; SET mapred.output.direct.EmrFileSystem false; A = LOAD 's3://support.elasticmapreduce/training/datasets/wikistats_tiny/' USING PigStorage(' ') AS (Site:chararray, page:chararray, views:int, total_bytes:long); B = GROUP A BY Site; C = FOREACH B GENERATE group as col1, COUNT(A) as col2; STORE C INTO 'wikicount' USING org.apache.hive.hcatalog.pig.HCatStorer();