草庐IT

REGEXP_REPLACE

全部标签

java - regexp_replace 异常

我正在尝试在ClouderaHue界面中运行一个配置单元查询,它可以很好地处理几百条记录。当我在更大的数据集上运行它时,它失败了。我试着在互联网上搜索它,但看起来有很多类似的错误,但不是我正在寻找的确切解决方案。我在我的配置单元查询中使用了redexp_replace,我认为这不会导致任何异常(我的印象是它可以轻松处理字符串和NULL类型)我得到的错误是java.util.regex.PatternSyntaxException:Unmatchedclosing')'nearindex12更新:这是导致问题的记录:columnA:ReadData(或ListDirectory)B列:列

regex - 使用配置单元 regexp_replace 从数据中删除大括号和美元符号

我需要从配置单元中的一个字段中删除美元符号和大括号。示例数据:$210.53$210.53($390.53)($210.53)问题是有些记录有大括号,有些则没有。以下是我想出的语法:selectREGEXP_REPLACE(amount,'\(\$|\)','')asamountfromtablewhereid=1234;输出:$210.53$210.53390.53210.53此语法不会从没有大括号的记录中删除美元符号。有人可以指导我吗? 最佳答案 如果您想从字段中删除a)美元符号和b)括号,您需要编写涵盖这两种情况的正则表达式。

regex - 当 regexp_like 和 regexp_extract 工作正常时,Impala regexp_like 查询返回 null

我需要使用regex_extract从列中的字符串中提取数字。我在外部表上使用Impala。我已经检查了正则表达式,为了测试它,我还使用了regexp_like和regexp_replace。他们两个都工作得很完美。这里是查询:selectsucursal,regexp_like(sucursal,'^[0-9]{1,3}')asmatch,regexp_extract(sucursal,'^[0-9]{1,3}',1)asCodSucusal,regexp_replace(sucursal,'^[0-9]{1,3}','lala')asRepCodSucusalfromjdv.stg

hadoop - Apache pig : Replace null with string

我的数据中有很多空条目。由于后期处理,如果我可以将null的默认值设置为字符串“other”,那将非常有帮助。我找不到执行此操作的方法(版本0.8.1-cdh3u4)另外,我的GENERATE语句中有一些变量可能会返回null,我需要类似于SQLDECODE函数的东西来获取“其他”字符串而不是null。例子:tmp=FOREACHdumpGENERATEsite,REGEX_EXTRACT(name,'^(?:([^.]+)\\.?){1}',1)ASproject,((amiMATCHES'.*datatype.*')?REGEX_EXTRACT(name,'^(?:([^.]+)\

hadoop - hive : Replace string/pattern in row if it exists else do nothing

我有一张表A,其中包含ID、姓名、年龄。>idnameage>{20}Joan12>3James12>12Jill12>{54}Adam12>{10}Bill12我需要移除{}周围的“id”字段。我试过这个:translate(regexp_extract(id,'([^{])([^}])',2),'{','')它有效,但对于没有{}的值返回null。id312有没有办法让我得到输出为???id203125410 最佳答案 您可以使用regexp_replaceudf来删除“{}”,例如:selectregexp_replace(i

csv - Hive - 复杂的 regexp_replace

我不是正则表达式专家,我在Hive中使用regexp_replace时遇到问题。我想将CSV文件加载到Hive中,其中包含如下行:AAA,1234,BBB,,,"""CC,CCC""","""DDD""","""EE"EEE""",,"""AAA""",1234,BBB,,,CCCC,"""DD,DD""",,"""FFFF""",如您所见,格式并不完美字符串字段中有非转义逗号一些字符串字段用“””(3个双引号)括起来字符串字段中有非转义双引号有空字段当我尝试将其导入Hive表时,由于未转义的逗号,列无法很好地解析。所以我将原始数据作为行导入到Hive表中,如下所示:CREATEEXT

regex - 配置单元查询 regexp_extract

我正在尝试从“[223.104.227.42]”中提取IP地址。我想提取“[”和“]”之间的223.104.227.42,我正在使用这个查询:selectregexp_extract('[223.104.227.42]','\\[(.*?)\\]')但是我得到一个错误:FAILED:Infunctionregexp_extract,patternmusthasonegroupreferenceatleast. 最佳答案 尝试将捕获组索引指定为参数(1):hive>selectregexp_extract('[223.104.227.

regex - CASE WHEN - LIKE - Hadoop Hive 中的 REGEXP

我想使用CASEWHEN、LIKE和正则表达式在配置单元表中编写查询。我使用了regexp和rlike,但我没有得到想要的结果。到目前为止,我的尝试如下selectdistinctendingfrom(selectdate,ending,name,count(distinctid)from(selectCONCAT_WS("/",year,month,day,hour)asdate,id,name,casewhentype='TRAN'then'tran'wheneventsregexp'%[:]no_reply[:]%[^o][^n][:]incomplete[:]%'andtype

regex - 使用 REGEXP_EXTRACT 没有给出预期的结果 - Hive

我正在尝试在Hive中使用REGEXP_EXTRACT函数从列中获取所需的字符串。列中数据的形式为:单词\more_words我需要提取\之后的字符串部分。我试着做这样的事情:SELECTREGEXP_EXTRACT('words\more_words','(.*)(\\+)(.*)',3)->不返回任何内容SELECTREGEXP_EXTRACT('words\more_words','.*(\\+)(.*)',2)->不返回任何内容SELECTREGEXP_EXTRACT('words\more_words','\w+(\\+)(\w+)',2)->什么都不返回SELECTREGE

java - 将配置单元函数转换为 java - 翻译和 regexp_replace

1)如何将下面的hive部分转换为javamapreduce?translate(regexp_replace(colA,"(\\\\=)","\\\\equalto"),"\[\]\(\)\{\}\^\?\+\*\$","____________")在regexp_replace中,我将替换所有=,在外部翻译中,我将替换所有影响futureregexp_replace解析的字符。(如果我不替换这些字符,它们稍后会引发异常)。2)我是否必须使用replaceChars(),如果是,那么如何?示例字符串格式为:tag1=573tag2=ABC0nuif6dSaturn0i899AA0(W