00:00
好了,同学们,我们接下来来讲下面的叫group by key啊,这样的一个方法,这样的一个算值,那么这个啊,咱们之前学过一个叫group by啊,这里呢,多了一个key啊,那从前面那个reduce来理解的话,好像感觉也比较好理解吧,就是相同的key会把它分在一个组当中,对不对?哎,就这个意思啊好,我们来演示一下啊同学们,我们这里呢,拷贝,拷贝以后呢,我写上16啊,然后呢,拿过来点击OK,嗯,放过来,放过来以后咱们下面的数据咱们暂时不要了啊,不要不要了,以后呢,RDD点我们叫group by key啊,那这个时候呢,我们直接点叫VR回车,回车以后咱们这边改一下叫group r,大家可以看到我们现在呀,它处理的数据的类型呢,就是一个tale啊,所以呢,我们这里说一下咱们的group by key啊。他为什么呢,将我们数据源中的数据干嘛呢?我们叫相同K的数据啊,相相同K的数据咱们给它什么呢?分在啊,分在我们的一个组中啊分在一个组中,它形成什么呢?来形成一个我们的对偶元组。
01:18
咱们叫元组啊,就是这样的,所以大家可以看到这就是一个队友的元组了,那么我们队友元组中的第一个元素啊,咱们元组中的第一个啊,第一个元素它就是我们的那个K啊,就是K,然后呢,我们的第二个啊,来咱们写上,嗯。呃,咱们的元组中的第二个元素,那元素它就是,嗯,我们相同K啊,来咱们叫相同K的那个value的啊集合啊,咱们以这个为例吧,那以这个为例,大家看我们相同的key,那么都是A,那么它就会把那个VALUE123放在这个可迭代的集合当中,哎,就这意思,所以啊,咱们这里呢,可以来咱们简单看一看,咱们叫group r,点我们叫collect,然后呢,点我们的for it啊,然后他给它print一下,嗯。
02:19
好,我们这里运行运行啊,看一看我们的结果,那这个结果呢,对于我们来讲呢,我相信呢,这个其实还是好理解的,对吧,相同的T嘛,分在一个组当中,诶这个跟咱们之前讲的那个group有没有什么区别呢?其实它是有区别的啊,这个等我们结果出来以后呢,我们再去看一看那个的区别,嗯。好,大家可以发现我们的A是相同的T吧,对不对,那么123就放到了一个集合当中,而我们的B因为它只有一个嘛,就把它放到了一个集合当中,对吧,这就是我们的group by key了,那好,那接下来呢,我们再给大家看之前咱们讲的那个东西啊,叫RDD点我们叫什么呢?叫group by,嗯。
03:03
呃,这个group by呢,他要问你啊,你是拿什么当成分组的K,那我就拿咱们ta当中的第一个呗,KV键值对,当中的K对不对?所以呢,我的下划线,点下划线一,诶这么写不就OK了吗?但你这么写啊,点我们叫VAR回车,回车以后有没有发现,同学们看来啊,你会发现咱们的这个使B跟这个使B表述的含义是一样的,它表述的都是我们分组的K,就是那个A和B对不对?可是这个就有点变化了,为什么?因为咱们这个BYK呀,就意味着K我们是确定的,但是那个V会单独的拿出来,而我们这个就不会把V单独拿出来,这是它们之间的一个区别,首先他们使用哪一个来分组是不确定的,像这个是固定是K,而这个不一定是什么,对不对?第二个我们既然by key了,那么Y就会独立出来,而我们这个呢,它没有by key,对不对,所以说他会把整体来进行分租,所以这个地方。
04:04
它也是那个它一样的,对吧,这是他们之间的区别啊,你把区别搞明白了,那我觉得这个问题不大对吗。
我来说两句