2017-05-25 18 views
0

私はHDFS、Hive、Sqoopを初めて使用しています。私はここに質問があります。私はHOWテーブルを作成しました。「HOW-importedオプションを使用しました」を使用して、Hiveテーブルにoracleテーブルのデータをインポートしました。私が作成しました。 HDFSのテーブルデータファイルにカンマで区切られたカラムがあることを期待していました。しかし、そうではありません。列は、HDFSファイルのコンマで区切られていません。これはデフォルトの動作か、何か不足していますか?HDFSファイル内の区切り文字がHiveテーブルの区切り文字の値と一致しません

親切に明確にしてください。前もって感謝します!ハイブのドキュメントを1として

+0

'--fields-terminated-by 'を含めましたか?私はデフォルトがコンマであると思った。あなたの完全なsqoopコマンドは何ですか? – Andrew

+0

@Andrew Hiveテーブルを作成する際には、 "fields terminated by"節 'code' sqoop import --connect --username -P --table dummy.sample_table --columns" "を追加しました。 --hive-import --hive-table Sample_sqoop_tab – Dharani

答えて

0

--hive-import 

Imports tables into Hive using Hive's default delimiters if none are explicitly set. 

Hive's default delimiter - fields terminated by : CTRL A and lines terminated by : \n 

だから、これは正常な動作です。 独自の文字列( "、")を置き換える場合は、 --hive-delims-replacementを使用できます。

sqoop import --connect jdbc:oracle_string//localhost:3306/mydb \ 
--username user --password pwd --table oracletbl \ 
--hive-import --hive-overwrite \ 
--hive-table hivedb.hivetbl -m 1 \ 
--hive-delims-replacement "," \ 
--null-string '\\N' \ 
--null-non-string '\\N' \ 
+0

あなたのコメントをお寄せいただきありがとうございます。私はデフォルトの区切り文字の値を上書きするオプションを試しましたが、コンマに設定しました。しかし、ハイブ/ウェアハウス/ で作成されたHDFSデータファイルに変更はありません – Dharani

関連する問題