草庐IT

join_group

全部标签

hadoop - 使用 JOIN 优化 Hive 查询,拥有百万条记录

我有2个表-bpm_agent_data-40Millionrecords,5Columnsbpm_loan_data-20Millionrecords,5Columns现在我在Hive中运行了一个查询-selectcount(bpm_agent_data.AgentID),count(bpm_loan_data.LoanNumber)frombpm_agent_dataJOINbpm_loan_datawherebpm_loan_data.id=bpm_agent_data.id;这需要很长时间才能完成。在HIVE中编写查询的理想方式应该是什么,这样Reducer就不会花费太多时间。

hadoop - pig 脚本 : Find sum of items in a group

这是我要运行的行counts=FOREACHz{sum=SUM(B::counter);GENERATEgroupasA::month,sum;};但是我收到以下错误:Invalidfieldprojection.Projectedfield[B::counter]doesnotexistinschema:group:chararray,y:bag{:tuple(A::id:chararray,A::month:chararray,B::counter:int)}.如何对这样一个包含基于一列分组的元组包的模式进行求和聚合? 最佳答案

hadoop - Hive group by with cube 和 group by 在同一个查询中

假设我正在观察表架构如下的超速事​​故:createtablespeeding_data(date_of_occurrencedate,yearint,makestring,modelstring,speedint);我想观察这些特征的不同组合下的平均速度,但希望它始终按date_of_occurrence分组,例如可能是这样的selectdate_of_occurrence,year,make,model,avg(speed)fromspeeding_datagroupbydate_of_occurrencegroupbyyear,make,modelwithcube;只是想知道在h

mysql - 对非常大的 INNER JOIN SQL 查询进行分区

sql查询是相当标准的内部连接类型。例如,比较n个表以查看所有n个表中存在哪些customerId将是一个基本的WHERE...AND类型查询。问题是表的大小超过1000万条记录。数据库是非规范化的。规范化不是一种选择。查询要么需要很长时间才能完成,要么永远不会完成。我不确定它是否相关,但我们正在将springxd作业模块用于其他类型的查询。我不确定如何划分此类作业,以便它可以并行运行,从而花费更少的时间,因此如果步骤/子部分失败,它可以从中断的地方继续。具有类似问题的其他帖子建议使用数据库引擎之外的替代方法,例如在代码中实现LOOPJOIN或使用MapReduce或Hadoop,我从

sql - HQL left outer join 用于查找一个表中存在而另一个表中不存在的记录

我有两个具有相同列的表,我想找出第一个表中存在但第二个表中不存在的记录。两个表之间的键由三列组成。我正在编写如下所示的Hive查询:*Selecta.x,b.yfromtable_1aleftouterjointable_2bona.c1=b.c1anda.c2=b.c2anda.c3=b.c3whereisnull(b.c1)orisnull(b.c2)orisnull(b.c3);*这个查询是否正确?如果table_1中有100条记录,其中50条记录与table_2匹配,则结果将包含table_1中剩余的50行或更多行,因为我对多个属性进行连接并在where条件下使用“OR”。

hadoop - 配置单元 : group column based on max value

我有一个包含字段的表datevalue10-02-19002309-05-19012210-03-19001010-02-190124....我必须返回每年的最大值即,190023190124我尝试了以下查询,但得到了错误的答案。SELECTYEAR(FROM_UNIXTIME(UNIX_TIMESTAMP(date,'dd-mm-yyyy')))asdate,MAX(value)FROMtebGROUPBYdate;有人可以建议我查询吗? 最佳答案 选项1selectyear(from_unixtime(unix_timestam

apache-spark - 如何在 "force"Hive on Spark 中使用 Map Join?

HiveonSpark不使用Map-Join查询View,该View对多个表进行联合。当使用MR引擎进行相同的查询时,使用Map-Join。我尝试按照Cloudera的建议设置各种Spark设置-https://www.cloudera.com/documentation/enterprise/5-13-x/topics/admin_hos_oview.html#dpp_in_hos我使用的View是一些表的简单联合,这些表都具有相同的结构并已分区。View是这样创建的:createviewmyViewasselect*fromtbl1unionallselect*fromtbl2un

hadoop - Hive中Group By对分区列的性能

我有一个包含4列的表,其中col4作为Hive中的分区列。这是一个巨大的表,每5小时插入约900万行。我有一个限制,我不能更改此表的设计,因为它也用于其他报告。CREATEEXTERNALTABLEtestdb.table1(col1string,col2int,col3int)PARTITIONEDBY(col4string)ROWFORMATDELIMITEDSTOREDASTEXTFILELOCATION'/path/to/input/';对于其中一个用例,我正在尝试创建一个查找表来识别col4中每个值的一些数据点,例如selectcol1,col4fromtestdb.tabl

hadoop - 与 apache pig latin 中的 GROUP 相对?

假设我在apachepig中有以下输入:(123,((1,2),(3,4)))(666,((8,9),(10,11),(3,4)))我想将这两行转换为以下7行:(123,(1,2))(123,(3,4))(666,(8,9))(666,(10,11))(666,(3,4))即这有点像“做与GROUP相反的事情”。这在pig拉丁语中可能吗? 最佳答案 看看FLATTEN.它可以满足您可能需要的功能。但是,使用上面的符号,元组列表看起来像是一个元组。这应该是一个包才能正常工作。代替:(123,((1,2),(3,4)))(666,((8

hadoop - PIG Latin 中的 JOIN 条件

SQLSELECTm.x,m.y,n.a,n.bfrommydata1m,mydata2nWHEREm.x=n.aANDm.y>=n.ypigA=LOAD'mydata1'AS(x:int,y:datetime);B=LOAD'mydata2'AS(a:int,b:datetime);我现在需要使用上述sql条件连接两个表。我将如何使用连接条件在PIG中实现上述逻辑? 最佳答案 试试这个:A=LOAD'mydata1'AS(x:int,y:datetime);B=LOAD'mydata2'AS(a:int,b:datetime);C