2016-12-09 19 views
0

私はデータを格納するブタスクリプトを実行しています。私はこのようなコードを持っている:ブタを使用してHbaseにデータを保存する

TOP = foreach GROUPED_DATA { 
    SORTED = order WEIGHTED_DATA BY review_weight DESC; 
    best_review = limit SORTED 1; 
    generate group as businessid, flatten (best_review); 
    } 

このコードは私に、各事業の最高の定格のレビューを与え、私はこのようなタプルを返します:

ID,  weight, ID, user_id, count 
(zzxb0Y , 34.2, zzxb0Y, dVK7EAJd, 5) 

私が使用してHBaseの中でこれを保存しようとしていますコード:

STORE TOP INTO 'hbase://sample_data' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage(sample_col:weight, sample_col:user_id, sample_col:count); 

私は、バインドされたエラーのうちのインデックスを取得:

java.lang.Exception: java.io.IOException: java.lang.IndexOutOfBoundsException: Index: 3, Size: 3 
at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462) 
at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:529) 
`Caused by: java.io.IOException: java.lang.IndexOutOfBoundsException: Index: 3, Size: 3 

IDをキーとし、各IDについて、column_familyに3つの値を格納するHbaseにデータを格納したいとします。どうすればいいか教えてください

答えて

1

"Top"リレーションには5列の がありますが、hbaseテーブルには3つのカラムがあります。最初はローのキーになるので、 "Top"には4つのカラムしかありません.regenerate

STORE TOP INTO 'のHBase:// SAMPLE_DATA' org.apache使用 - は:トップ関係と出力が ID、体重、user_idは、カウント (zzxb0Y、34.2、dVK7EAJd、5)

その後、使用する必要があります.pig.backend.hadoop.hbase.HBaseStorage(sample_col:weight、sample_col:user_id、sample_col:count);

関連する問題