私はmysqlの各テーブルに100000を超えるレコードを持つ1000個のテーブルを持っています。テーブルのカラム数は300〜500です。 テーブルの中には、カラム名に。(ドット)やスペースなどの特殊文字を含むカラムがあります。mysql sqoopの特殊文字をテキストファイルと寄木細工ファイルとしてインポート
は、今私はsqoopのインポートを行うと、ハイブ表が作成され、この後にテキストファイル
sqoop import --connect ${domain}:${port}/$(database) --username ${username} --password ${password} --table $(table) -m 1 --hive-import --hive-database ${hivedatabase} --hive-table $(table) --create-hive-table --target-dir /user/hive/warehouse/${hivedatabase}.db/$(table)
として以下のような単発のクエリでHDFSでハイブのテーブルを作成したいが、私は上の*クエリを選択行うときテーブルにはエラーが表示されます
このエラー出力はサンプル出力です。私は寄木細工のようにインポートは、テーブルが作成されたファイルを実行すると、私は選択クエリを実行するとき、クエリが与えられるとき
Error while compiling statement: FAILED: RuntimeException java.lang.RuntimeException: cannot find field emp from [0:emp.id, 1:emp.name, 2:emp.salary, 3:emp.dno]
は、しかし、私は結果を期待しました。 。(ドット)も_(アンダースコア)に自動的に置換されます
どうしてですか?
で、このためのJiraを持つフリーフォームのクエリを使用してみてください、あなたが必要と命名すべての列を与える 私の推測で、私が試してみました@Rijulsahu sqoopが別々のフィールド –
にあなたの.dotとスペースを解析しているかもしれであります--queryオプションも失敗しました – User12345