Ошибка куста: оператор компиляции: FAILED: в строке ParseException 15:0 отсутствует EOF в 'collection' рядом с ''\n''
Я новичок в улье, и я создаю таблицу со следующими свойствами,
CREATE EXTERNAL TABLE EXTTBL_Transactions
(
TRANSACTION_ID varchar(70) COMMENT 'UniqueID, `Primary Key',
DEFINITION_ID varchar(70) COMMENT 'Definition, Null Allowed',
USER_ID varchar(70) COMMENT 'Contact id, Foreign Key',
PURCHASE_DATETIME Timestamp COMMENT 'Saved dattime, Null Allowed',
PURCHASE_AMOUNT FLOAT COMMENT 'Sum value of number of product purchase,Null Allowed',
INTERACTIONS_ID varchar(70) COMMENT 'Unique interaction id, Foreign Key',
PRODUCT_DETAILS array<struct<PRODUCT_NAME:varchar(70),PRODUCT_PRICE:FLOAT>> COMMENT 'Product Details'
)
COMMENT 'Transaction details'
PARTITIONED BY (LOAD_DATE DATE)
row format delimited fields terminated by ','
lines terminated by '\n'
collection items terminated by '|'
map keys terminated by ':'
LOCATION 's3a://XXX/XXX//Transactions';
В приведенном выше коде я создаю массив структурного типа для деталей продукта. И я разделяю детали каждого продукта с '|' и структурировать элемент с помощью ':', но каким-то образом это вызывает ошибку.
1 ответ
Решение
Двигаюсь, чтобы ответить.
Заказ должен быть FIELDS
, COLLECTION ITEMS
, MAP KEYS
, а потом LINES
row_format
: DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]] [COLLECTION ITEMS TERMINATED BY char]
[MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]