簡體   English   中英

Hive中的regexp_extract參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM