簡體   English   中英

Hive 提取文本之前<br>

[英]Hive extract text before <br>

在 Apache hive 中,如何從給定的字符串中提取子字符串。 我有一列包含以下值。

我需要從下面的字符串中提取 ABC3170,即直到<br>

我的數據看起來有點像下面。 我想獲取所有記錄並消除<BR>之后的文本
第 1 列
---------
G3333
XYZD20
5289
ABC2620
CDF-B700S
客戶經理
ABC3170 <BR></DIV><DIV DIR="AUTO" STYLE="DIRECTION: LTR; MARGIN: 0; PADDING: 0; FONT-FAMILY: SANS-SE

使用Regexp_Extract函數和匹配的 java regex 提取<BR>.之前的值<BR>.

正則表達式:

(.*?)\\s+<BR> //capture without space until <BR>

蜂巢查詢:

hive> select regexp_extract(<column.name>,"(.*?)\\s+<BR>",1) from <db.name>.<tab.name>;

例子:

hive> select regexp_extract(txt,"(.*?)\\s+<BR>",1),txt from i;
+----------+---------------------------------------------------------------------------------------------------------------------------------------------+--+
|   _c0    |                                                                     txt                                                                     |
+----------+---------------------------------------------------------------------------------------------------------------------------------------------+--+
| ABC3170  | ABC3170 <BR></DIV><DIV DIR="AUTO" STYLE="DIRECTION: LTR; MARGIN: 0; PADDING: 0; FONT-FAMILY: SANS-SERIF; FONT-SIZE: 11PT; COLOR: BLACK; ">  |
+----------+---------------------------------------------------------------------------------------------------------------------------------------------+--+

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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