草庐IT

regex_replace

全部标签

regex - 如何使用 Pig 识别数据中的 '\N' 字符

我的数据中出现了非常奇怪的字符“\N”。我想从数据中删除或替换这个字符。以下是数据示例:GirlsShoes,1325051884\N,\NMen'sShirts,\N分隔符:逗号(,)我尝试了几种方法来替换/识别这个\N字符但没有用。 最佳答案 在Pig中,位置符号用美元符号($)表示并以零(0)开头;例如,$0、$1、$2。因此,在上述数据中,第一个字段由$0标识(例如“女鞋”),第二个字段由$1标识(例如1325051884)。以下脚本具有替换'\N'的逻辑:A=LOAD'/data.txt'USINGPigStorage('

regex - 文件名的一部分作为 Hive 表中的列

我想将文件名的第一部分作为Hive表中的一列Myfilenameis:20151102114450.46400_Always_1446482638967.xml我在MicrosoftAzure的Hive中使用正则表达式编写了一个查询(查询下方)以获取它的第一部分,即20151102114450但是当我运行查询时,我得到的输出为20151102164358selectCAST(regexp_replace(regexp_replace(regexp_replace(CAST(CAST(regexp_replace(split(INPUT__FILE__NAME,'[_]')[2],'.x

regex - 使用 RegexSerDe 在 Hive 中创建 DDL 时出错

我有分隔符为“,|”的数据。我按如下方式创建了配置单元DDL:CREATETABLEplayer_profile(player_idBIGINTCOMMENT'PlayerProfileIdentifier',change_tsSTRINGCOMMENT'ChangeDatetime',child_birth_yearINTCOMMENT'ChildBirthYear',countrySTRINGCOMMENT'CountryCode',)ROWFORMATSERDE'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'WITHSERDEP

regex - 使用点 '.' 的拆分无法使用 hive -e ""即使在放置双斜线之后

我使用以下查询来解析以点('.')分隔的数据。从配置单元控制台触发时,以下查询工作正常。我得到了这样的正确值:v=WijimLM4Khb5YUVrh7kl4bOWxYtIOtZwTRJ13977555161397755721139775573919但是当我使用hive-e""使用相同的查询时。它无法解析数据,解析列结果为空。nullnullnullnullnullnullnull查询:selectsplit(regexp_extract(cookie,'v=[^&\n\;\"]*',0),'\\.')[0],split(regexp_extract(cookie,'v=[^&\n\;\

hadoop - EMR : how to include semicolon in regex argument of EXTRACT function 上的 pig

我正在处理Pig中的一些数据,其中包括感兴趣的字符串,可以选择用分号分隔并以随机顺序排列,例如test=12345;foo=bartest=12345foo=bar;test=12345以下代码应提取测试“键”的字符串值:blah=FOREACHdataGENERATEFLATTEN(EXTRACT(str_of_interest,'test=(\\S+);?'))AS(test:chararray);但是,在运行代码时,我遇到了以下错误:mismatchedcharacter''expecting'''2013-04-1604:46:05,245[main]ERRORorg.apac

regex - 使用正则表达式匹配日志文件行时的可选字段

我正在尝试使用RegexSerDe通过正则表达式解析网络日志.它通过将每个正则表达式组与表中的列匹配来工作,如果正则表达式组为空,它会为该列分配一个空值。我在匹配缺少字段的日志行时遇到问题。此日志中有两种行:2016-10-23T23:59:59Zcache-iad2134fastly[502801]:52.55.94.131"-""-"Sun,23Oct201623:59:59GMTGET/apps/events/2016/10/11/3062653/?REC_ID=3062653&id=02002016-10-23T23:59:59Zcache-dfw1835fastly[5028

regex - Hive:在字符的第一次出现和最后一次出现之间提取字符串

我有一个Hive表列,其中的字符串由“-”分隔,我需要提取第一次和最后一次出现的“-”之间的字符串+-----------------+|col1|+-----------------+|abc-123-na-00-sf||123-abc-01-sd||123-abcd-sd|+-----------------+Requiredoutput:+-----------+|col1|+-----------+|123-na-00||abc-01||abcd|+-----------+请建议一些正则表达式来提取所需的输出。谢谢 最佳答案

regex - 如何在输入文件中找到导致错误的行 - PigLatin?

我有一个文件,每个文件有250k行。我正在尝试加载它们:apache_log=LOAD'apache_log/httpd-www02-access.log.2014-03-17-16*'USINGTextLoaderAS(line:chararray);apache_row=FOREACHapache_logGENERATEFLATTEN(REGEX_EXTRACT_ALL(line,'^".*?([\\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3}]*)"\\[(\\d{2}\\/\\w+\\/\\d{4}:\\d{2}:\\d{2}:\\d{2}\\+\\d{4

php - preg_replace : how to?

如果有一件事我无法理解(或学习),那就是preg_replace句法。我需要帮助删除>之间所有可能的符号(空格、制表符、换行符等)和.意思是,我有这样的XML:BANKME77326417072012我需要它看起来:BANKME77326417072012到目前为止,我想到了这个:$this->data=preg_replace('\>(.*?)但它甚至没有接近我的需要。将不胜感激。 最佳答案 你很接近,你只需要分隔符并限制你对空格字符的搜索:preg_replace('#>\s+其中#是分隔符,\s是任何空格字符的简写。您可以在t

php - 替换字符串中子字符串每次出现但最后一次出现的有效/简单方法(str_replace_except_last)?

设想以下输入和str_replace_except_last($replace_except_last,$replacement,$text)之后的所需输出:func(".","",12.833331.3198912.980289012.92)=>128333313198912980289012.92func(".","",31.0)=>31.0func(".","",8)=>8func(".","",9190.1.1.1....1.1.....1)=>919011111.1func(".","",98909090....)=>98909090.func("beer","","Mybe