У меня есть 1000 таблиц с более чем 100000 записей в каждой таблице в mysql. Таблицы имеют 300-500 столбцов. В некоторых таблицах есть столбцы со специальными символами типа (точка) и пробел в именах столбцов.Специальные символы в mysql sqoop import в виде файла Text и Parquet
Теперь я хочу сделать импорт sqoop и создать улую таблицу в HDFS в одном запросе выстрела, как показано ниже, как Textfile
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)
После этого создается улая таблица, но когда я делаю выберите * запросаны таблица показывает ошибку как
Этот выход ошибки является образцом вывода.
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]
Однако, когда я делаю импорт в качестве паркета файл таблица создается и когда я делаю запрос на выборку запрос дает мне ожидаемых результатов. Даже. (Точка) автоматически заменяются на _ (подчеркивание)
Почему это происходит?
попробуйте использовать бесплатную форму запроса и дать все столбцы имя вам требуется Мое предположение может быть sqoop является разбор вашего .DOT и пространство на отдельные поля –
@Rijulsahu Я попытался --Выбор параметров, а также он по-прежнему не удалось – User12345