00:00
前面我们给大家讲了connect这样的操作,连接两条流合并啊,大家会会发现这个connect的操作其实非常灵活的,因为两条流的数据类型可以不一样,对吧?诶,它可以非常的,呃,就是灵活的把各种各样的这个数据都整合在一起,然后再统一做操作,一国两制。但是它有一个缺陷。哎,对,大家会发现我能连接两条流,我能连接多条流吗。哎,那不行对吧,因为你看这里边调这个方法的时候,哎,这里是不是只有一个参数,一个data stream呀,不能传多个流对吧?哎,这是我们说的一国两制嘛,你不能一国三制啊,一国五制对吧?啊没有这样的说法,所以说它的连接就只能是连接两条零,而且后面我们做这个扣map或者扣flat map操作的时候,你会发现它是不是实现的方法也只有MAP1MAP2啊,没有MAP3MAP4对吧?所以这里边就局限了只能是两条流连接。那自然我们就想到,那假如说我要想多条流合在一起怎么办呢?哎,那这里边给大家提供另外一种河流的操作,叫做UNIUNI的话其实从概念上来讲就更加简单了啊,大家看就是直接把两条流或者多条流直接union放在一起,合并成一条流就完事了,所以大家看他也没有后面追加的那步操作了,是吧,也不需要进一步做操作了,所以它涵盖的意思是什么呢?
01:29
他就要求有额外要求,既然他这么这么容易做吗?对它有额外的限制,就是当前的合并的两条流必须是同样的数据类型啊,就是你假如说都是int类型的话,哎,那就data int data int合起来还是data int不用不用再改对吧?哎,所以是这样的一个过程。好,那大家如果总结一下的话,那其实就是说union和connect他们相当于是各有各自的特点,对吧,Union的特点是。
02:01
可以。可以合并多条流,但是它的数据类型必须一样,对有这个局限,而connect的话只能合并两条流,但是呢,哎,数据类型可以不一样,然后再做转换,对吧?哎,它这个就非常的灵活,非常的丰富,所以实际使用的过程当中,应该还是connect会多一点啊啊,那我们在代码里面把这个union还是简单的写一下吧,第三步啊,这个就是union啊,联合多条流啊,那这里边我们可以简单的先说一下,就是假如说啊,我要用这个warning stream,直接去union,当前的low time stream,这个可以吗?哎,大家看这里边直接报错了对吧?哎,他他就直接说我们当前这个处理不了,为什么呢?哎,你看现在是不是本身date stream它的泛型是T,然后union的时候date stream是不是也必须是T啊,啊当然了,它是点点点是不是可以传多个呀?哎,所以当前你如果要是直接这么去union,这是不成立的,但是可以啊,大家看是不是我可以直接high time stream去union low这个是不是没问题啊,你后边甚至直接再加上这个or是不是也可以啊,对吧?这些操作是完全没问题的啊啊大家可以下来之后再测一下就知道是怎么回事了,这就是UNI的操作啊,联合多条流。
03:28
然后我们这里边可以稍微总结一下,到目前为止,其实我们也发现了啊,为什么整个这个所有的转换计算啊,转换算子我们都叫做data stream API呢?就是因为我们基础的数据结构是不是就是data stream呀,对吧?然后里边它可能有一个泛型啊定义的内部的这个数据结构啊,那它在做转换的过程当中,数据类型有可能会发生改变,那这里边涉及到一些这个流本身这个数据类型改变的地方有哪些呢?大家看简单转换是不是不改变啊,KBY之后是不是就会由一个data stream转变成一个k stream呀?啊当然k stream本质我们说还是data stream对吧?啊但是呢,大家会发现这个呃,K stream里面有很多data stream本身调不了的方法,对吧?呃,那些比方说聚合操作都必须基于它,所以这里边如果我们在这里写一下的话啊,大家就会发现我现在是本身核心的是一个data stream。
04:29
Re,啊。呃,我这里边就简单写吧。啊,然后呢,如果做一些简单转换操作,呃,Map flat map filter对吧,那是不是得到的这个数据类型还是data STEM啊这个是没变的,然后呢,我可以对它做对T做分组。呃,这个我简写啊,得到的就是一个kid stream,然后kid stream本身是继承自这个这个data stream的,对吧?啊,那另外呢,K stream还可以在基于它做一些特殊的操作,就比方说聚合操作对吧,滚动聚合,或者说像这个reduce这样的操作,最后得到的是不是又变成data stream了啊,那另外data stream还可以。
05:16
还可以分流对吧,Split做这样的一个操作,那得到的是一个split stream,对,然后根据这个分流之后的那个标签那个戳,我最后再做一个select,是不是就又得到了一个data stream啊,啊,当然是分别去拣选啊,那现在我们又知道是不是可以做这个connect操作对吧。Connect操作得到的是一个对connect streams对吧,然后呢,Streams又可以做这个对mapt map里边传的是Co map function或者是Co flat map function就又得到了对应的一个data stream对吧?啊,那另外还有就是UN做这样的联联合多条流的话,是不是最终得到的还是一个data stream呀?啊,所以大家看核心就是data stream这样的一个数据类型啊,啊,所以这就是我们说的转换来转换去,最终还是得到了一个data stream,出出走半生归来仍是data stream对吧?啊,绕一圈还是data stream是吧?啊所以这就是我们整个这个数据转换啊,数据类型转换的过程。
我来说两句