2016-10-27 3 views
1

Значения Null отображаются как «\ N», когда запрашивается внешняя таблица улья.Sqoop import Null string

Ниже приведен сценарий sqoop импорта:

sqoop импорт -libjars /usr/lib/sqoop/lib/tdgssconfig.jar,/usr/lib/sqoop/lib/terajdbc4.jar -Dmapred.job .queue.name = xxxxxx \ --connect jdbc: teradata: //xxx.xx.xxx.xx/DATABASE=$db,LOGMECH=LDAP - соединительный менеджер org.apache.sqoop.teradata.TeradataConnManager \ - -username $ пользователя --password $ PWD --query "

выберите col1, col2, col3 от $ db.xxx

где \ $ УСЛОВИЯ" \ --null-string '\ N' --null-non-string '\ N' \ --fields-terminated-by '\ t' --num-mappers 6 \ --split-by job_number \ --delete-целевой реж \ --target-Dir $ hdfs_loc

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

ответ

4

Sathiyan- Ниже мои выводы после многих испытаний

  1. Если свойство (пустая строка) не включается во время импорта sqoop, то NULL сохраняются как [пустой для целых столбцов] и [пустой для столбцов строки] в HDFS. 2.Ели стол HIVE сверху HDFS опрашиваются, мы увидели бы [NULL для целочисленного столбца] и [пустого для Струнных столбцов]
  2. Если свойство (--null-string '\N') включаются во время импорта sqoop, то Нуль- хранится как ['\ N' как для целых, так и для столбцов строк].
  3. Если таблица HIVE сверху HDFS опрашивается, мы увидели бы [NULL как для целочисленных и строковых столбцов не «\ N»]
+0

Для меня с '--null-string '\ N'' значения null-non-string записываются в HDFS как« null », но ваши рекомендации заставляют его работать :) Они корректно читаются как нулевые значения. –

1

В вашем sqoop сценарии вы упомянули --null-string '\N' --null-non-string '\N, что означает,

--null-string '\N' = The string to be written for a null value for string columns 

--null-non-string '\N' = The string to be written for a null value for non-string columns 
+0

Угу. Вот как нули будут сохраняться в HDFS. Но, когда запрашивается таблица улей, значение null должно отображаться как фактическое значение null, а не '\\ N' – Bagavathi

+0

Нет, какая бы строка, которую вы здесь указываете, будет храниться в HDFS, поэтому все, что когда-либо хранится в HDFS, будет отражено в улье запрос. –

+0

- это то, что работает? –

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

  • Нет связанных вопросов^_^