00:00
好,接下来呢,我们来实现一下代码啊,首先来实现一下这个驱动当中缓存一个文件对吧,并把它这个呃,Reduceer给它关掉,那这个驱动代码啊,我就不给大家写了啊,我直接就先创建一个报名吧。因为已经驱动写过太多遍了,所以说这里面就不写了,呃,Map赵拿过来。驱动。如果你觉得你这个driver还不行,那你就自己再写一遍。现在咱们已经写过。比较多了哈。好,放大直接拿过来,越是成熟代码呢,越要小心啊,要小心。拿过来之后我们仔细检查一下,看看有哪些内容,那第一个呢,配置信息,Alt加回车导包,别导错了,没问题,下一个呢,我们加载的是加包,那当前这个驱动类没问题,还有map交易map map还没有的吧?哎,别着急,一会再写好,那我这个map的输出输入啊,输出key和value分别是什么?
01:04
这里面定义的是test,为什么是test?那你看我们最终输出要求啥样?我最终输出的时候输拼接,拼接要求是订单商品名称以及对应的这个name。那是不是一个支符串了,哎,那我就把这个支符串输出去就行了,好所以说这个地方呢,我们用的是test,哎,那这个value流啊是空不需要,那下面还有说最终输出的KV。那最终输出你看我们这里面啊,我是把它设置成零啥意思,没有radio阶段,那我这个map输出就是最终的输出。那好,那这块呢,我它仍然继承跟这个map输出的KV保持一致就可以了,那再往下下面有一个ul out加回车。别倒书包了,导net包下的。那这个路径啊,要求在D盘input tableca里面有一个PD.test那这里呢,你需要检查一下。
02:03
打开。地盘。呃,D盘的找一下input。Tableca是吧?哎,这个文件OK啊,那就有了,那这有了之后,那下面我们继续往下看啊。他搞定这个也搞定alt加回车。导错包了啊长的,嗯,长的。二加回车。长的。Pass。没问题,那这个输入路径。对吧,输入路径是不是得是al那个T德T啊,因为你PD已经缓存了,那我这个输入我得找一下啊。找一下table。这边二,哎二是不是他呀,哎,这个路径哈,把它拿过来。OK,好,那我最终输出的话,我输出到。Hi duop,好像output。
03:02
西西啊行吧,哎,这就搞定了,那下边呢,我们就来专门写一下这个map z啊,写下它out加回车创建。那这里面直接给我继承了一个map对吧,那继承map我们就写一下呗,他首先传进来的是浪。Right ball,对吧?嗯,然后呢,泰斯特,嗯,那他的K呢,是泰斯特,Now right。OK吧,OK。那这里面我们要重写它的set方法和对应的map方法。好搞定。那像我在这个赛的方法,赛的方法里面,我要干什么事啊。我是要获取缓存的文件呢。并把文件。并把。文件内容。封装到哪里?
04:00
到集合呀,对吧,哎,风传到集合其实就是缓冲一张PD.t那我下面这个处理呢。下面处理的谁呀?处理的是or点样o.T是不是这张表?对吧,那我首先拿到这个缓存文件,那怎么拿呢。Contest点儿。Get catch获取缓存文件?好,那返回来的是一个URL数组,什么意思?也就是说我现在缓存的是多个缓存文件的地址。那我缓实际缓存几个,我是不是只缓存一个,那我可以从这个数组里面取出任何一个URL地址吧,那比如说我取出零,那是于第一个,哎。那有了这个缓存地址,它并不是一个流啊。那得有人去读这个路径上的内容啊,哎,那由谁来读呢?File system。点get con,那con怎么来contest.get con。
05:03
让他先获取一个FS文件系统,那我通过这个FS系统点open打开一个路径,你有一个pass。Pass,那pass里面传谁?啊,泉水。对吧,那我pass里面是不是应该从这里面去取值啊取出。第一个,这不就是这个值吗。对吧,嗯,好点帽。那拿到了是行,现在这个输入流有了。那下面我得从这个流里面读数据啊,从。流中读取数据。那读数据怎么读呢?又一个。Buffer的reader。通过它,然后这里面又一个。Input。
06:01
Input STEM reader哎,那这里面CTRL加P,它需要一个input STEM,那就f is进来,那后面再给他一个编码方式,UTF杠八。这样就可以读取这个流里面的数据。对吧,读这数据,那读数据的话,那你看一下我现在读的是这个PD.tpd.t长什么样。万春。对吧,食堂。出来。我现在啊,我这个流已经瞄准上这个文件了,准备读,那我一次读一行一行一行读过来知道吧,那我读的时候怎么读呢。读取的值放到一行里面来,然后while。那。等于reader点。
07:00
这是获取一个数据,那我得判一下,判一下什么呢?把它拿出来。拿出来叫string。U。U是导包,记住哈,导common包下的,别导这个还毒啊,导common它这里面有一个is not MP。啥意思?我从这里面去获取一行数据,那这一行数据如果说它不等于空,那我们往下。对吧,按原不段读。那源源不断读,读过来的是这一行内容,读过来之后怎么办?我说得切割呀,哎,切割。切割,那切割的话呢,就是line点斯布利特啊切用这个斜杠T。切割出来了,切割出来之后,现在相当于是一个是他,一个是他。那我得把它存到一个集合里面呢,那我现在我定义集合了吗?没有,那我说需要准备一个集合呀,那准备一个集合,我现在这里面创建哈,这里面有提示。
08:06
呃,哈希。Map,那我这个哈希map它对应的。K和VALUE6是不是都是实践类型,你这是PID,这呢是pim,都是实践吗?好,能看到这里面。2万,那我这个叫什么呢?叫PD。可以吧,哎放到这里面,那现在这个呢,我得提到全局拿出去。那我下面就往这里面复制叫。复制。PD,它点put。那put的话,那谁为KC为value,那时候FAIR0是对应的k fair1是对应的value,好,那就FAIR0。再来一。上面就进来了吗。就这么简单,嗯,好,那这个进来之后,那下面这个都结束了,别忘了最后一步关流啊。
09:06
因为你文件已经读完了吗?那关流的话,IOS.close swim。哎,现在呢,就整个这个PD.t就已经把它加载到这个集合里面去了。那这个文件处理完之后,那下面该处理谁了?是不该处理它了,那该处理它,我们把这个输入文件拿过来,嗯,Input table。OK,截一张图。哎,你这样去写代码就非常轻松啊。时刻配的图,那这个图有了之后,那下面我这里面是不是一次获取一行啊。那它点啊点什么点y to string.y啊过去一行。那获取一行之后要斯布利特切割杠T。这已经太熟了哈,那这呢,就是fids。
10:01
得到了吧,哎,得到这个菲尔斯,现在有了它,有了它之后我要先获取对应的PID啊,对吧,哎,获取PID。叫获取PID,那获取PID怎么获取呢?No。ID,我这里面一是不就PID对吧,那我这个是K有了,我用谁取呢?Pd map.get。我传进去这个key。等会我是不是就能取出来对应的P。哎,通过传进去,它取出来对应的name得到了,那下一步下一步我要获取谁,我要获取你这里面的订单ID和订单数量嘛。对吧,哎呃,订单ID订单数量啊,对我都拿到啊。获取订单ID和。订单数量。
11:00
那怎么获取啊,这就更简单了吧,嗯,这个简单我获取完我们就一步到位得了一步直接封装到对应的这个输出的。这个K里面,嗯,直接往这里面写。这样直接拼窗了。省的比较麻烦。A private,我需要一个test,那这呢,是一个output key等于。你有一个。好。搞定。这样呢,这个2K就有了,有了之后直接往里面封装。叫封装。怎么封装呢,它点set,哎往出写,那往出写的话,我第一个呢是这个PD,嗯。订单ID对吧,哎,订单ID,那订单ID是FILE0吧,哎,FILE0拿到,那FAIR0拿到之后,中间是p name吧,把这个p name拿过来。P,我加上一个。
12:01
拼接符斜杠T再加一个它可以吧,然后再加上一个。分割符杠T。再加一个,哎,那下一个呢,就是二。012对,没毛病,那新债取出来的就是这个,哎,这个总量对吧,拼接完毕,拼接完毕之后,那最后一步写出contest.right output k,那value呢是now.get。不就完事了吗?OK搞定,那我这个写完之后,嗯,我们捋一下,嗯,直接执行看看效果怎么样啊。看有没有问题。OK out put7,观察一下,Out put7啊。还读吧,没问题对吧,哎,输出路径没有直径。先看一下效果。OK,执行完毕,执行完毕之后,我们来看一下奥特七右键。打开。你看跟我们上一个radio噪音是不是一模一样啊,哎,效果是一样的啊好。
13:05
行,那这个呢,就是这个呃,Map招引相应的一个处理办法啊。
我来说两句