草庐IT

grouped-collection-select

全部标签

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)})((

hadoop - 使用 hive -e 'select' 打印列标题时是否可以停止 HIVE 打印数据库?

执行时:hive-e'select*fromdatabase.table'>/localfilesystem/mytable.txt列标题名称的格式为database.columnname,我希望它们只是columnname。执行上述类型的查询时,有没有办法在列名中抑制数据库? 最佳答案 hive.resultset.use.unique.column.names是在0.13中添加的,默认为True。只需在~/.hiverc或hive-site.xml中将其设置为falsehive.resultset.use.unique.colu

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

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 - Hive collect_list() 不收集 NULL 值

我正在尝试收集包含NULL的列以及该列中的一些值...但是collect_list忽略了NULL并仅收集其中具有值(value)的那些。有没有一种方法可以检索NULL以及其他值?SELECTcol1,col2,collect_list(col3)ascol3FROM(SELECT*FROMtable_1ORDERBYcol1,col2,col3)GROUPBYcol1,col2;实际的col3值0.9NULLNULL0.70.6结果col3值[0.9,0.7,0.6]我希望在应用collect_list之后有一个看起来像这样的配置单元解决方案[0.9,NULL,NULL,0.7,0.6

hadoop - 配置单元:使用带分隔符的 collect_set

我正在尝试在配置单元查询中使用collect_set按条件对组中的列进行分组。每行都有空格作为分隔符,而不是“,”之类的。在这种情况下如何将分隔符更改为“,”或任何其他分隔符?提前致谢。问候,娜迦本普拉拉 最佳答案 COLLECT_SET返回一个数组,然后您可以使用CONCAT_WS将条目连接成单个逗号分隔值:selectserial_num,concat_ws(",",collect_set(customer_lastName))asconcatenate_lastNamesfromExternal_Tablegroupbyser

configuration - 为 Hive 中的 INSERT OVERWRITE SELECT 指定压缩编解码器

我有一个像这样的hive表CREATETABLEbeacons(foostring,barstring,foonotbarstring)COMMENT"Digestofdailybeacons,byday"PARTITIONEDBY(daystringCOMMENt"InYYYY-MM-DDformat");为了填充,我正在做类似的事情:SEThive.exec.compress.output=True;SETio.seqfile.compression.type=BLOCK;INSERTOVERWRITETABLEbeaconsPARTITION(day="2011-01-26")S

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

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

hadoop - Hadoop中的Sort Comparator和Group Comparator有什么区别?

Hadoop中的排序比较器和组比较器有什么区别? 最佳答案 要了解GroupComparator,请看我对这个问题的回答——WhatistheuseofgroupingcomparatorinhadoopmapreduceSortComparator:用于定义map输出键如何排序摘自《Hadoop-权威指南》一书:键的排序顺序如下:如果属性mapred.output.key.comparator.class被显式设置或通过在Job上调用setSortComparatorClass(),然后使用该类的一个实例。(在旧API等效方法是J

hadoop - pig : Get top n values per group

我有已经分组和聚合的数据,它看起来像这样:uservaluecount------------------Alicethird5Alicefirst11Alicesecond10Alicefourth2...Bobsecond20Bobthird18Bobfirst21Bobfourth8...对于每个用户(爱丽丝和鲍勃),我想检索他们的前n个值(比方说2),“计数”的排序项。所以我想要的输出是这样的:Alicefirst11Alicesecond10Bobfirst21Bobsecond20我怎样才能做到这一点? 最佳答案 一种方