草庐IT

join_forum

全部标签

hadoop - Mapside Join 和 Reduce side join 可以有不同的 O/P

以下代码存在于PROD中并且每天运行,我正在尝试对其进行优化。我看到设置hive.auto.convert.join=FALSE;正在让它执行一个Reducesidejoin,它运行2.5小时并产生2324381条记录的行数。如果我设置hive.auto.convert.join=TRUE;然后它执行Map端连接并仅运行20分钟并生成5766529条记录的行数。我需要知道为什么行数不同,这是否正确?行数不同可以吗?我的印象是,无论发生哪个连接,O/P或查询都应该保持不变。在这两种情况下,源数据都保持不变,而且对于我正在更改的配置单元设置,所有其他条件都是相同的。INSERTOVERWR

hadoop - Map side join in Hadoop失去数据局部性优势?

我的问题与Hadoop中的Mapsidejoin有关。前几天我正在阅读ProHadoop我不明白以下句子“map-sidejoin提供了一个框架,用于对多个排序的对象执行操作数据集。虽然连接中的单个maptask失去了数据局部性的大部分优势,由于消除减少阶段和/或大大减少了reduce所需的数据量。”如果排序后的数据集存储在HDFS上,它怎么会失去数据局部性的优势?Hadoop中的作业跟踪器不会在数据集block本地化的同一位置运行任务跟踪器吗?请纠正我的理解。 最佳答案 这个说法是正确的。您不会丢失所有数据局部性,但会丢失其中的一

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就不会花费太多时间。

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”。

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 - 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

hadoop - 使用 sqlcontext spark 执行 sql join

这个问题在这里已经有了答案:UseSparkSession.sql()withJDBC(1个回答)关闭4年前。我尝试运行查询以使用sqlcontext等联接查询Oracle数据库,valsql="selectafromb,cwhereb.join=c.join"valdataframe=sqlcontext.read.jdbc(url,sql,connection_properties)我收到无效的表名错误。但是,如果我尝试像下面这样查询表,它就可以正常工作。valdf1=sqlcontext.read.jdbc(url,"b",connection_properties)valdf2

hadoop - 在 Hive 中使用 Join 更新查询

我正在尝试执行以下操作:UPDATEaSETcol1=B.col1,col3=B.col4FROMtableAJOINtableBona.col2=b.col2WHEREA.col5=B.col5;但是,这会引发以下错误:编译语句时出错:FAILED-ParseException-在“col4”附近的“from”处缺少EOF我尝试重新排列set和from子句,但无法执行查询。ParseExceptions一次又一次地出现。我的表类型、列数据类型都相同。在表上运行静态更新工作得很好。有什么方法可以让我在hive中加入join来运行更新?请帮忙。 最佳答案

hadoop - 优化配置单元查询以避免 JOIN

问题类似于this除了我想知道我是否可以在一个查询中完成。这就是我的工作,但众所周知,连接很昂贵。有更好的hql吗?selecta.tbl1,b.tbl2from(selectcount(*)astbl1fromtbl1)ajoin(selectcount(*)astbl2fromtbl2)bON1=1 最佳答案 是的,连接很昂贵当说join是昂贵的,这通常是指你在多个表中有很多记录需要相互匹配的情况。根据该描述,您的加入并不昂贵,因为您只加入了2个集合,每个集合有1条记录。但是,您必须查看开销也许您注意到单个计数所用的时间比您用来