

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

# 例: HCatalog テーブルを作成して Pig を使用して書き込む
<a name="emr-hcatalog-pig"></a>

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 を使用してマスターノードに接続します](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html)。

次のコンテンツで 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();
```