Hadoop
文章平均质量分 61
_璠_
这个作者很懒,什么都没留下…
展开
-
MapReduce工作原理
一、MapReduce执行过程map阶段:数据来源于HDFS,分片(input split)后输入到不同的map。map处理完数据后不会直接写到磁盘上,而是先写到内存(buffer in memory)。内存大小默认为100M。随着map处理的数据越来越多,内存中的数据就会增大,一旦超过一个阀值(80%,即80M),数据会从内存中落地到磁盘上(即溢写,spill)。但是数据并不是随原创 2017-07-10 15:42:21 · 391 阅读 · 1 评论 -
问题解决:hive中的find_in_set不能用作join的条件
假设有两个表A和B,其中:表Aid12345表Bids1,2,32,34,55,67,8这里B中的ids字段是许多由逗号分隔的id。现在的任务是join两张表,条件是A.id要出现在B.ids中。如果在mysql中,使用语句:select * from Ajoin Bon find_in_set(A.id,B.ids)原创 2017-07-11 17:25:41 · 3342 阅读 · 1 评论 -
问题解决:Hive中双count(distinct)过慢的问题
这里说的双count(distinct)是指类似下面的语句select day,count(distinct session_id),count(distinct user_id) from log a group by day;如果要执行这样的语句,前提必须设置参数:set hive.groupby.skewindata=true;我们可以用“空间换时间”的思路解原创 2017-09-05 15:09:45 · 5262 阅读 · 0 评论 -
HIVE中MACRO(宏)的使用
在编写HQL的过程中,很多逻辑需要反复使用。这时我们可以使用宏对这段逻辑进行提炼,起到优化开发效率、提升程序可读性的效果(尤其是括号嵌套很多层、case-when嵌套很多层的时候)。举个例子:create temporary macro sayhello (x string) concat('hello,',x,'!');select sayhello('程序员'); --输出:hello...原创 2019-05-25 14:38:25 · 5404 阅读 · 1 评论