3

二重引用符とコンマで区切られたCSVファイルがあります。次のようになります。

"ベンダーからのテキスト"、 "Vendor Name、Inc."、 "blah blah"、 "Next string"、 ""、1234

Hiveを使用してHbaseのテーブルにインポートしようとしています。

次のようなものを使用して、HbaseのHiveからテーブルを作成できます。

hive> CREATE TABLE exampletable1(tax_numb int, tax_name string, tax_addr string, tax_city string, tax_stat string) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf:tax_name,cf:tax_addr,cf:tax_city,cf:tax_stat")
TBLPROPERTIES ("hbase.table.name" = "hiveexampletable1");

また、次のようなコマンドを使用して、CSVファイルをインポートしたHiveにテーブルを追加することもできました(二重引用符の問題はありますが)。

hive> create table example2(tax_numb int、tax_name string、tax_addr string、tax_city string、tax_stat string)'、'で終わる行形式で区切られたフィールドはテキストファイルとして保存されます。

ただし、Hbaseで外部テーブルを作成するコマンドに「区切りフィールド」ビットを統合することはできません。

私はHiveとHbaseの組み合わせに比較的慣れていないので、コミュニティに助けを求める方がよいと思うところに到達する前に、いくつかのチュートリアルを実行しました。私はグーグルで多くの検索を実行しましたが、役に立ちませんでした。

任意のヘルプ/提案をいただければ幸いです。

4

2 に答える 2

0

美しい解決策を見つけようと何度か試みた後、私は最終的に昔ながらのやり方に頼らざるを得なくなり、問題を解決する必要がありました。私が使用したコマンドは次のようになります。

$ cat inputCSVfile.csv | awk '{print substr ($0, 252, 20) echo "|" substr ($0, 133, 2) echo "|" substr ($0, 297, 13)}'

これにより、必要なものが得られました。次に、データを Hive にインポートし、そこから Hbase にポップしました。将来誰かに役立つことを願っています。

于 2013-02-28T23:58:44.773 に答える