Обычно сопоставление с SerDe выполняется для сопоставления зарезервированного имени поля с незарезервированным. Шаблон ниже:
WITH SERDEPROPERTIES (
'mapping.NON_RESERVED_KEYWORD' = 'RESERVED_KEYWORD'
)
Реальный пример из github :
CREATE TABLE mytable (
myfield string, ts string
) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
WITH SERDEPROPERTIES ( "mapping.ts" = "timestamp" )
STORED AS TEXTFILE;
Сопоставление выполняется как timestamp
зарезервированное ключевое слово.
У вас регистр System_ID должен быть перевернут. Кроме того, я проверил в Руководстве по кустам и System_ID
не зарезервированное ключевое слово.
ОБНОВЛЕНИЕ ОП :
После некоторых дополнительных экспериментов я также решил, что вы не можете использовать смешанный регистр в NON_RESERVED_KEYWORD. Все прописные или строчные в порядке.