2017-06-30 2 views
0

私はhdfsにいくつかのデータを持っています。
このデータは、Sqoopを使用してPostgreSQLデータベースから移行されました。
データは、_SUCCESS,part-m-00000など
などのハーフオーバーフォーマットがあります。このデータに基づいてハイブテーブルを作成し、このテーブルを1つのタブ区切りファイルにエクスポートする必要があります。HIVEテーブルを作成し、タブで区切ったファイルに保存しますか?

私が知る限り、私はこのようにテーブルを作ることができます。

create external table table_name (
    id int, 
    myfields string 
) 
location '/my/location/in/hdfs'; 

その後、私はtsvファイルとしてテーブルを保存することができます:私はハイブテーブルにHDFSからデータをロードする方法がわからない

hive -e 'select * from some_table' > /home/myfile.tsv 


さらに、createを使用してテーブルの構造を手動で定義するのか、すべての列が自動的に作成されるときに自動化された方法がありますか?

+0

ハイブデータはすでにLOCATIONのHDFSにあります –

+0

どのsqoopコマンドを使用しましたか?それはあなたのためにHiveテーブルを作成するオプションを持っています –

+0

@ cricket_007:これは別の人によって行われました。だから、私はこれを変更することはできません。 – Dinosaurius

答えて

1

私はあなたがやっているようにあなたがHDFSディレクトリ上のテーブルスキーマを作成

ハイブテーブルにHDFSからデータをロードする方法がわかりません。

手動でテーブルの構造を定義する必要がありますか?または、すべての列が自動的に作成されるときに自動化されますか?

tell sqoop to create the table以外の場合は、手動で行う必要があります。

このテーブルを1つのタブ区切りファイルにエクスポートします。

クエリが機能するか、sqoopで区切り文字を\tに設定しないと、そのような列区切り文字を最初に指定して別のテーブルを作成する必要があります。そしてテーブルを照会する必要もなく、ディレクトリにを実行してください