Я создал таблицу-улей на hbase table
как это
CREATE EXTERNAL TABLE RGPD.TEST_TAB(
`HBASE_ID` STRING,
`INTEGRATION_ID` STRING,
`LAST_NAME` STRING,
`MAIDEN_NAME` STRING,
`FST_NAME` STRING,
`PER_TITLE` STRING,
`BIRTH_DT` STRING
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ('hbase.columns.mapping'=':key,all:integration_id,all:last_name,all:maiden_name,all:fst_name,all:per_title,all:birth_dt','serialization.encoding'='UTF-8')
TBLPROPERTIES ('hbase.table.name'='key:TEST_TAB');
когда я делаю запрос выбора в hive
У меня такой возврат:
10131472 FRAN�OIS
а запрос в hbase возвращает:
01061948 FRAN\xC7OIS
Я знаю, что это проблема с кодировкой (utf-8), но я не нашел решения Любая помощь, пожалуйста!
нет, я так не думаю, потому что я использую один и тот же дисплей для hbase и улей. Я создал другую таблицу улья "TEST_TAB_TXT" и сделал вставку в нее. в текстовом файле у меня был странный персонаж
Было ли это странным проявлением персонажа или реальной заменой? Вам нужно будет сбросить содержимое с помощью шестнадцатеричного редактора или аналогичного.
Я думаю, что исходный текст - FRANÇOIS, поскольку C7 представляет собой Ç. Вопрос в том, как вы вставляете данные.
У меня есть база данных SQLsever, я сделал импорт в кластер HADOOP в таблице HBase hbase.table.name. После того, как я создал для этой таблицы внешнюю таблицу улья, данные будут доступны для чтения в hbase, но не в улье.





Я не знаю Hive, но мне кажется, что он возвращает действительный utf-8, но вы пытаетесь отображать результат в другой кодировке (возможно, тип ASCII или ANSI), где байт C7 не имеет значения .