Я пытаюсь импортировать данные из SQL Server в Hadoop, и в таблице, которую я импортирую, есть поле даты и времени.Без подстановки он хранится в каком-то количестве в Hive.Я пытаюсь заменить тип данных через java столбец карты, но он выдает ошибку, я пытался заменить его как String, Timestamp, но он не работает.Какое значение будет иметь тип данных в столбце карты Java?Ниже приведен код, который я выполняю.
sqoop eval -Dmapreduce.job.queuename=X--username X--password X--connect 'jdbc:sqlserver://xxxxxx' --query "select case data_type when 'uniqueidentifier' then COLUMN_NAME + '=String' when 'nvarchar' then COLUMN_NAME + '=String' when 'bigint' then COLUMN_NAME + '=Double' when 'datetime' then COLUMN_NAME+ '=Date' else '' end as data_type from information_schema.columns where table_name='$TABLE' AND TABLE_CATALOG='X'" | grep '=' | tr '\r\n' ',' | tr -d '|' | tr -d ' ' | sed "s/data_field,/--map-column-java /g" | sed -e '$a\'
Запрос, который выполняется:
select
case data_type
when 'uniqueidentifier' then COLUMN_NAME + '=String'
when 'nvarchar' then COLUMN_NAME + '=String'
when 'bigint' then COLUMN_NAME + '=Double'
when 'datetime' then COLUMN_NAME+ '=Date'
else ''
end as data_type
from information_schema.columns
where table_name='$TABLE' AND TABLE_CATALOG='X'