USE test_db2
CREATE TABLE test_table2
(
Subscn_Purch_Id BIGINT COMMENT 'from deserializer',
Price_Amt DECIMAL(38,18),
Purch_Line_Item_Id BIGINT,
Subscn_Purch_Status_Id BIGINT COMMENT 'from defdf',
Offer_Coupon_Id BIGINT, -- INTRO OFFER
Offer_Period_Hrs BIGINT,
discount_offer_id STRING -- DISCOUNT
)
PARTITIONED BY (
testcol bigint
)
ROW FORMAT SERDE
'eeee'
STORED AS INPUTFORMAT
'rrrr'
OUTPUTFORMAT
'tttt';
из вышеприведенного DDL Мне нужно получить подробности об уровне столбца.т. е. имя столбца, тип данных, длина данных (если есть), точность данных (если есть), комментарий к столбцу (если есть)
Мне не нужны детали комментария, такие как '- INTRO OFFER'и «- СКИДКА» в приведенном выше примере.
Я пытался использовать регулярное выражение
\s*(\w+)\s*(\w+)(?:\s*\,\s*)?(?:\((\d+)(?:,\s?(\d+))?\))?(?:\s*\,\s*)?(?:(?=(?:.*COMMENT\s*)\'(.*)\'(?:\,|\))))
. Это регулярное выражение извлекает детали, в которых есть слово «COMEMNT», но не другие. При добавлении «?»в конце этого регулярного выражения он извлекает детали, которые мне не нужны.
как этого добиться.
присоединение ссылки regex101:
https://regex101.com/r/QfOCfj/3