- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 regexp_extract 时遇到了一些问题:
我正在查询一个制表符分隔的文件,我正在检查的列有如下所示的字符串:
abc.def.ghi
select distinct regexp_extract(name, '[^.]+', 0) from dummy;
select distinct regexp_extract(name, '[^.]+', 1) from dummy;
2011-12-13 23:17:08,132 Stage-1 map = 0%, reduce = 0%
2011-12-13 23:17:28,265 Stage-1 map = 100%, reduce = 100%
Ended Job = job_201112071152_0071 with errors
FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.MapRedTask
java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row
最佳答案
来自文档 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF看起来 regexp_extract() 是您希望提取的数据的记录/行提取。
它似乎适用于第一个发现(然后退出)而不是全局。因此索引引用捕获组。
0 = 整个比赛
1 = 捕获组 1
2 = 捕获组 2,等等...
从手册中转述:
regexp_extract('foothebar', 'foo(.*?)(bar)', 2)
^ ^
groups 1 2
This returns 'bar'.
regexp_extract(name, '\.([^.]+)', 1)
或者这个
regexp_extract(name, '[.]([^.]+)', 1)
.
字符,这几乎就像 split 。
abc
.def.ghi
regexp_extract(name, '^(?:([^.]+)\.?){1}', 1)
def
.ghi
regexp_extract(name, '^(?:([^.]+)\.?){2}', 1)
ghi
regexp_extract(name, '^(?:([^.]+)\.?){3}', 1)
^(?:([^.]+)\.?){n}
虽然有问题。...
. ^(?:([^.]*)\.?){n}
但即使少于 n-1 个点,这也会匹配,^(?:(?!\2)([^.]*)(?:\.|$())){2}
,其他都一样。
regexp_extract(name, '^(?:(?!\2)([^.]*)(?:\.|$())){2}', 1)
将 {2} 更改为需要的任何“段”(这是段 2)。
^ # Begining of string
(?: # Grouping
(?!\2) # Assertion: Capture buffer 2 is UNDEFINED
( [^.]*) # Capture buffer 1, optional non-dot chars, many times
(?: # Grouping
\. # Dot character
| # or,
$ () # End of string, set capture buffer 2 DEFINED (prevents recursion when end of string)
) # End grouping
){3} # End grouping, repeat group exactly 3 (or N) times (overwrites capture buffer 1 each time)
关于regex - hive regexp_extract 奇怪之处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8497090/
我正在尝试从“[223.104.227.42]”中提取 IP 地址。我想提取“[”和“]”之间的 223.104.227.42,我正在使用这个查询: select regexp_extract('[2
我有一个格式的字符串: abc_fjs_dja_sja_dj_sadjasdksa_sdjakd_match_fsja_fsdk 我想REGEXP_EXTRACT第8个分隔位置的字符串(_作为分隔符)
我在使用 regexp_extract 时遇到了一些问题: 我正在查询一个制表符分隔的文件,我正在检查的列有如下所示的字符串: abc.def.ghi 现在,如果我这样做: select distin
我只成功提取了我使用的网站列表的 TLD REGEXP_EXTRACT(Domain_name, r'(\.[^.:]*)]\.?:?[0-9]*$') AS web_tld 示例: 我有 www.e
我正在尝试使用 regexp_extract 从表中的列(字符串数据类型)中提取所需的数据,我正在使用此查询: 从表中选择 regexp_extract(concat(column_name,;),'
花括号中的参数在下面的代码段中有什么作用? regexp_extract(col_value, '^(?:([^,]*)\,?){1}', 1) Id, regexp_extract(col_val
对正则表达式的世界来说相对较新,所以请多多包涵。我正在尝试使用 regexp_extract 提取字符串中的特定数据子集,但它为我当前尝试使用的正则表达式返回 NULL。 要求如下:- String
我正在尝试从配置单元表中查找行,其中特定列不包含空值或\N 值或 STX 字符“\002”。目标是找到哪些行包含这三个以外的一些字符。 我尝试了这个配置单元查询: select column1
我正在尝试在 Hive 中使用 REGEXP_EXTRACT 函数从列中获取所需的字符串。列中数据的形式为: 单词\more_words 我需要提取 \ 之后的字符串部分。我试着做这样的事情: SEL
我在 Apache Hive 中遇到一段代码,如 regexp_extract(input, '[0-9]*', 0),有人可以向我解释这段代码的作用吗?谢谢 最佳答案 来自 the Hive man
我一直在尝试弄清楚如何删除多个非字母数字或非数字字符,或者仅返回字符串中的数字字符。我试过: SELECT regexp_extract('X789', '[0-9]', 0) FROM table_
我在 session_id 列中有一个 ID,当前格式为: [P0000000000109669288] (https://link.com/#/company::_e73d4f95_a66f_436
我正在尝试从具有多个字符的列中提取数据,我只对从输入字符串中获取特定字符串感兴趣。我的样本输入和输出如下。我怎样才能使用 regexp_extract 函数实现它。如果你在 GBQ 上工作,有人可以分
假设您尝试从数据帧的列中提取子字符串。 regexp_extract()如果字段本身为空,则返回空值,但如果字段不为空但找不到表达式,则返回空字符串。对于后一种情况,您如何返回空值? df = spa
下面是数据集示例,每一行都有以下值: 排 值(value) 1 AG3608-sueyfbnd-sjwfk 2 TS2649-sjwjmdaqo-wkdmfl 3 乌杰奥尔索普 4 sjhwu78iw
我在 Jupyter (Scala) 笔记本中使用 regexp_extract Spark 2.2 SQL 函数来匹配 11 个或更多重复字符的字符串。 这是正则表达式: ^(.)\1{10,}$
我需要使用 regex_extract 从列中的字符串中提取数字。我在外部表上使用 Impala。 我已经检查了正则表达式,为了测试它,我还使用了 regexp_like 和 regexp_repla
我在 BigQuery Reference 或 re2 wiki 中都找不到答案。 在 BigQuery Reference 中 Regex 部分的所有示例中,每个 regex 之前都有一个“r”,但
我正在使用 Google Big Query,并尝试使用 Regexp_extract 将一些信息从字符串列提取到另一列中。简而言之: myVariable中的数据: yippie/eggs-spam
我是一名优秀的程序员,十分优秀!