草庐IT

regex-group

全部标签

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

sql - 排序行时优化 Hive GROUP BY

我有以下(非常简单的)Hive查询:selectuser_id,event_id,min(time)asstart,max(time)asend,count(*)astotal,count(interaction==1)asclicksfromevents_allgroupbyuser_id,event_id;表格结构如下:user_idevent_idtimeinteractionEx833Lli36nxTvGTA1DvjuCUv6EnkVundBHSBzQevw14304815302950Ex833Lli36nxTvGTA1DvjuCUv6EnkVundBHSBzQevw14304

hadoop - PIG Group - 无法获得多个字段

我想知道谁在每个部门领取最高薪水-我正在获得每个部门的最高薪水,但无法获得其中的名字....使用pig脚本附加文件EmpData=LOAD'/data/EmpDet3.csv'usingPigStorage(',')as(fname:chararray,lname:chararray,position:chararray,dept:chararray,salary:chararray);Grp_Dept=GROUPEmpDatabydept;EmpDataC=FOREACHEmpDataGENERATEfname,lname,position,dept,(int)SUBSTRING(s

hadoop - Pig DUMP 卡在 GROUP 中

我是PIG初学者(使用pig0.10.0),我有一些简单的JSON,如下所示:测试.json:{"from":"1234567890",....."profile":{"email":"me@domain.com".....}}我在pig身上进行了一些分组/计数:>pig-xlocal使用以下PIG脚本:REGISTER/pig-udfs/oink.jar;REGISTER/pig-udfs/json-simple-1.1.jar;REGISTER/pig-udfs/guava-12.0.jar;REGISTER/pig-udfs/elephant-bird-2.2.3.jar;use

hadoop - Pig 中 GROUP BY 中的条件过滤器

我有以下数据集,如果它们具有相同的键,我需要将其中的多行合并为一行。同时,我需要在分组的多个元组中进行选择。1N11101N12152N11103N11103N12154N21105N31105N3220例如A=LOAD'data.txt'AS(f1:int,f2:chararray,f3:int,f4:int);G=GROUPABY(f1,f2);DUMPG;((1,N1),{(1,N1,1,10),(1,N1,2,15)})((2,N1),{(2,N1,1,10)})((3,N1),{(3,N1,1,10),(3,N1,2,15)})((4,N2),{(4,N2,1,10)})((

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

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

java - pig : Group by ranges/binning data

我有一组整数值,我想将它们分组到一堆容器中。示例:假设我有1到1000之间的一千个点,我想做20个bin。有没有办法将它们分组到一个bin/array中?此外,我不会提前知道范围有多宽,因此我无法硬编码任何特定值。 最佳答案 如果您有最小值和最大值,则可以将范围除以bin的数量。例如,--foo.pigids=load'$INPUT'as(id:int);ids_with_key=foreachidsgenerate(id-$MIN)*$BIN_COUNT/($MAX-$MIN+1)asbin_id,id;group_by_id=g

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

Group By分组后选取每组最新的一条数据

GroupBy分组后选取每组最新的一条数据问题groupby语句只会展示一条数据,而且很多时候并不会展示我们想要的数据,如何解决呢首先我们先建一张表temp,如下我们先试一下分组查询,看看结果SELECT*FROM`temp`GROUPBYaddress结果如下:它默认是取的id最小的那一条数据,如果想要取最新的一条呢,我们试试先排序再分组SELECT *FROM (SELECT*FROM`temp`ORDERBY`create_time`desc)AStGROUPBY t.`address`看看结果:发现结果没变,就像排序好像没生效一样,下面有两种解决方法方法一:加limit关键字SELEC

hadoop - 如何在配置单元查询中编写 case 和 group by

这是我的hive表:coursedeptsubjectstatusbtechcsejavapassbtechcsehadoopfailbtechcsecgdetainedbtechcseccpassbtechitdaapassbtechitwtpassbtechitcnnpassmbahrhrlawpassmbahrhrguidabsentmtechcsjavapassmtechcscdpassmtechcscpdetained我想通过以下方式查询此表以检索数据:coursedeptstatusbtechcsefailbtechitpassmbahrabsentmtechcsfail首