[英]regexp_extract arguments in Hive
大括號中的參數在下面的代碼段中做了什么?
regexp_extract(col_value, '^(?:([^,]*)\,?){1}', 1) Id,
regexp_extract(col_value, '^(?:([^,]*)\,?){2}', 1) Score,
regexp_extract(col_value, '^(?:([^,]*)\,?){9}', 1) DisplayName,
如您在此處閱讀的內容,大括號中包含前一個令牌(在這種情況下為非捕獲組 )可能重復的次數。
該組包含一個(可能為空) 捕獲組,該組由非逗號字符組成,后跟一個可選的逗號。 由於大括號中只有一個數字,因此非捕獲組必須准確重復該次數。
我不知道為什么逗號應該用反斜杠來逃避。 在我看來,反斜杠是沒有必要的。
警告:我不了解Hadoop或Hive,我對regexp_extract
所有知識都來自此頁面 。
這些正則表達式的目的是匹配逗號分隔列表中的第一個,第二個和第九個元素,其中捕獲組#1(由regexp_extract
的第三個參數regexp_extract
)僅返回其最后一次出現。 當然,逗號不是真正可選的,除了最后一個元素之后。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.