Разделители, которые будут использоваться при создании таблицы улья - PullRequest
0 голосов
/ 09 мая 2018

Импортированная таблица журналов с сервера SQL на HDFS в сжатом формате (.gz).

sqoop import --connect "jdbc:jtds:sqlserver://ServerName:1433/Test" --username sa --password root --table log --target-dir hdfs://localhost:50071/TestMain --fields-terminated-by "¤" --hive-import --create-hive-table --compress --split-by Logid

Создана внешняя таблица в кусте поверх этих данных.

CREATE EXTERNAL TABLE TestMain(LogMessage varchar(2000))
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY "¤" 
STORED AS TEXTFILE 
LOCATION 'hdfs://localhost:50071/TestMain';

Тежурналы имеют столбец типа данных nvarchar(max) в SQL.Какой тип данных должен использоваться в Hive?

Я пытался использовать тип данных string в кусте, но столкнулся со следующей проблемой: во время выполнения запроса select в кусте я вижу только первые несколько слов:поле.Я не вижу значения всего столбца.

Пример. Это поле имеет следующее значение в SQL:

Message: Procedure or function 'XYZ' expects parameter '@ABC', which was not supplied.
Stacktrace:    This has whole 5 lines error stack trace.

Значение, видимое при запросе в Hive:

Procedure or function 'XYZ' expects parameter '@ABC', which was not supplied.

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

Пожалуйста, предложите решение или лучший способ запросить эти данные в HDFS.

...