2015-03-30 2 views
0

Когда мы создаем с помощьюHive Extended таблица

Создания внешнего работника таблицы (имя строки, зарплата поплавка) формата строки с разделителями полей, заканчивающейся «» местоположением/эх

В/EMP каталога Есть 2 EMP файлов ,

поэтому, когда мы запускаем select * от сотрудника, он получает данные как из показа объявления файла.

Что произойдет, если в другом файле будет другой файл, который не соответствует таблице сотрудников, поэтому он попытается загрузить все файлы при запуске «select * from employee»?

1. Укажите, какое конкретное имя файла мы хотим загрузить? 2.Can мы создаем другую таблицу также с тем же местом?

Благодаря Prashant

ответ

0

Она будет загружать все файлы в директории EMP даже не совпадает с таблицей.

для вашего первого вопроса. вы можете использовать Regex serde.if ваши данные соответствуют регулярному выражению. Затем он загружается в таблицу. regex for access log in hive serde

https://github.com/apache/hive/blob/trunk/contrib/src/java/org/apache/hadoop/hive/contrib/serde2/RegexSerDe.java

другие варианты: я указываю некоторые links.these ссылки есть несколько способов.

when creating an external table in hive can I point the location to specific files in a direcotry?

https://issues.apache.org/jira/browse/HIVE-951

на ваш второй вопрос: да, мы можем создавать другие таблицы и с таким же адресом.

0

Вот ваши ответы 1. Если данные в файле dosent совпадают с табличным форматом, куст не выдает ошибку. Он пытается прочитать данные как можно лучше. Если данные для некоторых столбцов отсутствуют, для них будет установлен NULL.

  1. Нет, мы не можем указать имя файла для любой таблицы для чтения данных. Hive рассмотрит все файлы под каталогом таблицы.

  2. Да, мы можем создавать другие таблицы с одинаковым местоположением.

Смежные вопросы