Интервью вопрос улей разделение и ведро

-7

Я новичок в Hive, и у меня недавно было интервью, в котором мне задавали следующие вопросы. Может ли кто-нибудь помочь с правильным ответом.

Во время выполнения разбиения, что, если данные отсутствуют в одном столбце, как разделение будет обрабатывать это? Можете ли вы импортировать файл журнала с помощью sqoop? Я дал ответ НЕТ, поскольку sqoop используется для импорта данных из таблиц СУБД в hadoop. В таблице сотрудника, если значение равно нулю для каких-либо данных, вы все равно можете поместить его в квадрат? Таблица сотрудников указывается с идентификатором сотрудника, местоположением, зарплатой, отделом, а какой столбец будет использоваться при разбивке на сегменты? Я думаю, что мы можем использовать отдел как разделение, а идентификатор сотрудника, местонахождение и зарплату можно использовать в качестве сегмента, пожалуйста, подтвердите.

спросил(а) 2019-01-04T06:37:00+03:00 1 год, 6 месяцев назад
0
54

Добавляем ответы и соответствующие пояснения к вопросам ниже:

1) Из какого столбца вы спрашиваете, что данные будут пропущены? Если данные пропущены из разделенного столбца, это не повлияет. Если вы чувствуете, что результаты запросов не верны, вы можете выполнить исправление msck для таблицы. Пожалуйста, дайте мне знать, если данные пропущены из разделенного столбца.

2) Это зависит от того, где находится файл журнала и как он есть. Если файл журнала находится в форме таблицы на любом сервере RDBMS, вы можете поместить его в sqoop. Если файл журнала находится на каком-либо ftp-сервере, вы можете выполнить ftp/sftp/ssh. Если файл журнала находится в другом кластере, вы можете использовать distcp.

3) Да, вы можете sqoop. Но если вы напрямую запустите команду sqoop import, у вас могут возникнуть проблемы. При импорте sqoop у вас есть несколько параметров, которые нужно указать: --null-non-string '\n' & --null-string '\n' → они предназначены для импорта --input-null-non-string '\n '& --input-null-string'\n '-> они предназначены для экспорта. Они будут указывать команду sqoop и генерируемую java-программу, в которой есть нулевые значения, и они будут идентифицироваться исполняемой java-программой импортировать/экспортировать.

4) Это доступные столбцы id сотрудника, местоположение, зарплата, отдел

employeeId -> For bucketing

Location -> For partitioning

Salary -> Better not add for bucketing or partitioning (for example if there are )

Причина: Если 10 работников и только 6 из 10 имеют разную зарплату. Если вы примените раздел у вас будет 6 разных каталогов. Если вы примените группирование с 2 сегментами, данные будут разделены в зависимости от значений. Это только для образца данных. Вообразите это, если есть огромные данные. У вас будет несколько каталогов и неравных файлов. Так что лучше на это ничего не применять.

department -> for partitioning

ответил(а) 2019-01-04T14:27:00+03:00 1 год, 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема