[解決済み] HiveQLクエリの結果をCSVに出力するにはどうしたらいいですか?
質問
Hiveのクエリの結果をCSVファイルに書き出したいと思っています。コマンドはこんな感じでいいのかなと。
insert overwrite directory '/home/output.csv' select books from table;
実行すると、正常に完了したと表示されるのですが、ファイルが見当たりません。どうすればこのファイルを見つけることができるのでしょうか、それとも別の方法でデータを抽出する必要があるのでしょうか。
どのように解決するのですか?
を使用することは可能ですが
INSERT OVERWRITE
を使用してHiveからデータを取り出すことは可能ですが、特定のケースには最適な方法ではないかもしれません。まず最初に
INSERT OVERWRITE
が何をするのかを説明し、次に私がHiveのテーブルからtsvファイルを取得するために使用している方法を説明します。
によると マニュアルによると によると、あなたのクエリはHDFSのディレクトリにデータを保存します。フォーマットはcsvではありません。
ファイルシステムに書き込まれたデータは、列が^Aで区切られ、行が改行で区切られたテキストとしてシリアライズされます。列のいずれかがプリミティブ型でない場合、それらの列はJSON形式にシリアライズされます。
わずかな修正 (たとえば
LOCAL
キーワードを追加)すると、ローカルディレクトリにデータが保存されます。
INSERT OVERWRITE LOCAL DIRECTORY '/home/lvermeer/temp' select books from table;
同じようなクエリを実行すると、以下のような出力になります。
[lvermeer@hadoop temp]$ ll
total 4
-rwxr-xr-x 1 lvermeer users 811 Aug 9 09:21 000000_0
[lvermeer@hadoop temp]$ head 000000_0
"row1""col1"1234"col3"1234FALSE
"row2""col1"5678"col3"5678TRUE
個人的には、このような場合はコマンドラインでHiveから直接クエリを実行し、それをこのようにローカルファイルにパイプするのが普通です。
hive -e 'select books from table' > /home/lvermeer/temp.tsv
これで、タブ区切りのファイルができあがりました。これがあなたにとっても有用であることを願っています。
に基づいて このパッチ-3682 は、Hive 0.11を使用する場合、より良いソリューションが利用可能であると思われますが、私自身はこれをテストすることができません。新しい構文は、以下を可能にするはずです。
INSERT OVERWRITE LOCAL DIRECTORY '/home/lvermeer/temp'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
select books from table;
お役に立てれば幸いです。
関連
-
[解決済み] なぜORMを使う必要があるのですか?[クローズド]
-
[解決済み] scale horizontallyとscale verticallyの意味を教えてください。重複
-
[解決済み] Neo4jでデータベースを削除/作成する方法は?
-
[解決済み] MS Accessの代替となるフリーソフト [終了しました]。
-
[解決済み] DynamoDBからアイテム数を取得するには?
-
[解決済み] 外部キーとしてカラムを追加すると、外部キー制約で参照されるカラムが存在しないERRORが表示される
-
[解決済み] H2データベースを管理するフロントエンドツール【終了しました
-
[解決済み] なぜデータベースは常に円柱で表現されるのですか?[クローズド]
-
[解決済み] SQLiteのテーブルから最後のオートインクリメントされたIDを取り出すには?
-
[解決済み] 人名と性別を対応させるのに適したライブラリをご存知の方はいらっしゃいませんか?[クローズド]
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] データベースの設計に外部キーは本当に必要なのか?
-
[解決済み] データベースのインデックスはいくつあっても足りない?
-
[解決済み] SQLite UPSERT / UPDATE OR INSERT
-
[解決済み] Postgresql - データベースをバックアップし、異なる所有者にリストア?
-
[解決済み] 非リレーショナルデータベース設計【終了しました
-
[解決済み] scale horizontallyとscale verticallyの意味を教えてください。重複
-
[解決済み] データベースに登録する電子メールアドレスの最適な長さは?
-
[解決済み] ソース管理からどのようにデータベースを構築するべきか?
-
[解決済み] データベースで月額課金システムを設計するためのグッドプラクティス【終了しました
-
[解決済み] データベースとフラットファイル