00:00
什么地方,呃,那么首先呢,咱们在这里,我呢去把这个东西表数据删一下啊给删一下,那我先如果删除这个表数据,这东西怎么删同学们。我现在想删除我们当前的这张表的数据,怎么删al,然后接下来table,然后加上它T下划线,我当前的这个表叫到我们这个order,然后接下来然们这个Y的,然后下划线0523~023,然后接下来这里边要做什么,Delete,然后where对吧,一等一对吧,是不是这么在执行对吧?然后接下来咱现在呢,Select count星对吧?那咱从这里边来打没了,对这咱删除数据啊,把数据线干掉,然后接下来呢,因为我们是使用的,呃,这个判的嘛,对吧,使用A判的话呢,那么这个时候咱们要追加对吧?我因为在正常的话,我不想再往这表里面追加数据了,我就想往这里边把这数据清掉对吧?呃,然后接下来呢,那么咱们现在啊,要想去排除我这个问题的话,把这些呢,我暂时都关掉啊,把暂时我现在呢,把这都关掉,然后呢,来到咱们这个事实这里,对实这里,那我还能找到谁呢?找到我们刚才的这个order we的AP对吧,找到咱们这个DWS,然后找到它,然后呢在上。
01:12
上边把这个呢,我去输出啊,打开一下,我看一看啊,就是咱们这里到底这个东西有没有啊,这个到底有没有,呃,然后接下来那么咱们现在呢,把这个东西打开之后呢,呃,咱咱们实物分摊对它的这块,然后呢,我去对给他对这个赋值对order we final title amount对吧?来吧,大家现在呢,来看一看,把这个东西走一遍,首先呢OS,然后呢右键,然后咱们去运行对吧,把这个记起来,把这个提来,然后呢,把我现在的这个订单,还有订单明细的这个给提起来是吧。这个订单取一下,跟着我一块走啊,正好咱看一看对吧,然后订单明细对吧,这个取一下。
02:01
然后这个呢,咱们也把它取一下啊,这个也把它取一下。然后呢,咱们现在把这个东西呢,都起一起对吧,取一起看一看对吧,然后一会我去生成对吧,然后同时呢,你也得把这个order这个B呢再看一下对吧,这一宽表来一起来找一找啊这个应该是一个bug呀,看看是不是有什么哪块有问题对吧,咱一起来看一下对吧,我当时在这里有DT吧,看一下这里这DT也有的是吧。来是吧,那么咱现在呢,看一看这个东西运行的怎么样了,来我这里有数据了,数据了,然后接下来来到我们这里,我们呢,去把它执行一下啊,去把它执行一下,来这里去Java看这。
03:02
然后看一看,咱们现在呢,在这里一个输出啊,看咱们在这里输出。好了,那么这个数据呢,过来了啊,这个数据过来了,呃,那么这个数据过来之后呢,咱们现在呢,来看一看,我现在往这里写没写成功啊,写没写成功,然后呢,还是莱康新来芙蓉看还没过来那个什么啊这里啊有一个问题是吧?这给大家讲一下啊在这会呢,咱们现在啊这里有一个问题对吧,我现在这会执行完之后对吧,那我现在呢,先把这个给拿掉,同学们对吧?在这里呢,我把这个暂时先给它停掉,那么停掉之后呢,咱们先看我的数据,然后一会再跟他说这个为什么没写成功对吧?呃,然后接下来咱现在呢来找啊找,那么我当前呢它的一个分摊金额,对这分摊担金额在什么位置呢?那来看一看,对在在在谁谁的前面对吧,在咱们这个说首单的前面对吧,那咱们现在呢,说首单,然后找地区呗,对吧,那咱们现在在这里这地区这个呢,是我收首单,然后这会儿呢。
04:14
分单金额对吧?分单金额这有啊,到咱们现这里这只收单金额是不是有的呀?对吧?那么这个有的话,那咱们现在呢,就到数据库里边去查询一下,到到那数据库里查一下,但是刚才咱看到这里有个问题什么呢?就是我现在啊,在咱们这里在保存的时候,对吧?那么如果说我现在呢,再去保存的时候,它这个数据库没保存,你如果输出的话,这个数据库是不是相当于咱还没保存进去啊。对,你看在咱们这里边儿对吧,在咱们这个输出的时候,你相当于这个好像没有保存区对吧,没有保存区,那这个怎么回事呢。这是怎么回事呢?在这里,其实这里它有一点啊同学们对吧,大家来看一看,其实咱们在这里在我这订单对吧?它保存的时候呢,其中有一块对吧,这会需要稍先注意一下对吧?呃,什么呢?就是如果说啊,我现在在咱们这里如果输出的话,就相当于什么,相当于把这个东西呢给它给消费掉了,短就是如果说你要进行转换的话,对,如果你要涉及到RDD已经转换的话,那么这块呢,对吧,就是你现在前面短相当已经什么呀,已经在把这个东西给他到成么消费了,就相当于啊把这个东西给消费了,对吧?那么你要去解决这问题的话,怎么办呢?第一种方式,那你可以把它给做一个缓存啊,就在这,你可以把这个东西啊做一个缓存,对吧,或者说咱们在这呢,我就直接既然验证它没问题,那么咱现在呢,我直接看数据库啊,我直接看数据库对吧,不光是这块啊,不光这块后边呢,也会有这种情况,那后面也会有这种情况,就涉及到一些咱们这个转换的时候呢,那这块呢尽量对吧,你可以把它做一个我们这个缓存。
05:59
存啊,尽量可以把它做个缓存对吧?呃,然后这块我看一看啊,在这里对吧,咱们现在呢,再去执行,把这些东西重新执行一下,对吧,其实它有一个对吧,它有一个缓存,最好做一个缓存对吧?然后接下来我现在呢,重新把这个运行一下啊。
06:20
流是吧,我看一看啊,在这里边在保存的时候,对吧,我用这个流是吧?咱们这里应该是对这个是吧?哦在这里咱们这里呢,注意啊,这块咱们我说的呢是吧?那咱们现在呢,在到这里边注意啊同学们这块诶我刚才这里边split咱们用的不是这个流是吧,对吧?注意啊,还有一个这个它本身这个数据可以过来放的是一样的东西,但是咱们这里没有是吧?还有什么呀,同学们这里我记得有一个缓存啊,缓存对吧?这块呢,给大家找一个正说一下这块对吧?在咱们这里边还有一个什么呢?对,就是缓存,这会提前给大家说一下,就是本身呢,咱们在这里对吧,我们在进行缓存的时候,你像原来咱们在保存菲利克斯的时候,这里是不是有一个K这个缓存呀,对吧,那么这这缓存其实呢,你加不加对吧,这块呢,其实是没关系的,没有影响的对吧,它其实只是一个优化对吧?但是呢,如果说我现在要涉及到什么呢。
07:20
要涉及到一些我们这个转换这个操作的话,对对数据转换操作话,那么这块的缓存呢,那你必须得加上对吧,必须得加上对吧,这个就不光是优化了啊,要不然你没有数据对吧,比如说咱们后边在我们这里可能有一个对吧,对我们这个谁呢对吧,比如说对我们这买circle对吧,这操作如果说你现在要想去这个啊保存MYSO的话,那这个时候对吧,它的操作对吧,也是转换成我们这个谁呢?转换成我们现在这个Spark Spark啊我是circle,然后这块呢,你如果要是的转换的话,那么这块呢,它也会出现在刚那种情况,然后也会出现在刚才那种情况,然这个数据呢,就相当于我被消费掉了啊,那你要把这个东西呢给缓存一下对吧?啊,我还以为是这个问题,其实还不是对吧,其实不是对吧?好,那咱们现在呢,来把这个东西呢,对吧,正好我就直接呢,咱们这个试一试把试一试,然后呢,咱现在再重新运行啊重新运行把这个呢改一下把改一下,咱现在呢重新去把这跑一跑啊跑一下。
08:36
这个缓存的问题是存在的,要不然大家想一想,就算刚才这里边同学们假如说啊,要是我这个缓存,这个数据如果要是没被消费掉的话,我用就算我用的是order外的,那你说这个数据是不是应该还在呀?你们觉得啊,就像刚才咱们在这里,我这里不是打不打印输出吗?都不打印输出吗?然后接着咱现在这里,就算我用的是order we的这个order外的这个数据,你想咱们现在上边我这这这这这个order we,我这数据是不是应该还是在的呀。
09:08
对吧,你想我这个我我现在这里,如果说啊,我我在咱们这里处理的时候,对吧?呃,比如说对吧,我我在咱们这里面,我用我用它来保存对吧,然后但是呢,我在上面做了一个输出,但是你对orderright的数据是不应该有影响。对吧,想一想啊,咱先看啊,同学们把这个大给大家看,这个效果都看一下,主要说到这了啊,那么咱们现在呢,在这里,假如说我呢,把这东西注释掉,那注掉之后呢,那么咱们现在呢,那我去来运行啊运行那这种应该是可以的,咱试一试,看一看啊,我现在呢去执行。咱们生成数据这个操作啊,去生成数据的操作。那么这个数据生成完之后呢,这个数据生成完之后,对吧,然后接下来。
10:08
看一看对吧,然后咱们现在这个数据就发生变化了,然后来咱们现在呢,去到我们这个clean号查询啊,都可能好查询这个数据是过得了,这一种情况,就是说咱们现在正常情况下,这个数据过了,然后呢,咱们现在去查询什么呢?把这个detail对吧,那如果这块的话,应该是这个数据应该是正常的啊吧,应该是有值的啊这个没问题吧,同学们啊,正正常情况啊,这正常情况,然后接下来我把这个演示一下,我看能不能演出来把这个东西呢,我给它关掉。啊,把这个删掉,那删掉之呢,咱们当前这里边现在是不是又没数据了呀,没数据之后呢,那我回过头来干什么呢?我把这个东西对吧,打开啊,这都打开啊,然后接下来我看看是不是和缓存有关系啊,这个应该也是有缓存的事吧,我试一下是吧,来到呢,现在呢,在这里啊在这里。
11:00
看是不是缓存的问题。好了,那么接下来呢,咱们现在来看一下对吧,那我再去把这个数据呢,来生成一下啊,再来这里,我呢去生成数据啊,再来生成数据。那么生数据,咱们现在这个数据是不是可以拿到对吧?那么拿到之后呢,咱们现在来到这里啊,我来看一看,咱们现在呢,它的里面的值对吧,它是零还是多少对吧?大家看大现在这东西是不是零啊对吧?这是什么?这个其实呃这个和谁有关系,就是和咱们当前的我们这个转换有关系对吧?转换有关系怎么去理解呢?同学们,对吧,就是本身呢,在咱们这对吧,在咱们这里边对吧,就是我现在这不是做了一个转换吗?做了一个什么转换,我是不是我现在要把它当成RTD,给它转换成我们现在一个date frame,比如说你的RDD啊已经变化了,同学们。
12:34
早就咱们当前在这里,你这RDD呢,这已经的这个被消费过了,然后你现在呢,再用它的去执行我这RD的话,那么这块呢,这个它不会再什么呀,咱不会再拿到数据,对吧,那你可以怎么办呢?对吧,你可以在这里在他处理之前,你把咱们R这个stream对吧,甚至把这个谁呢,对吧,因为咱们主要这个封装的其实是消毒费,咱们D就RD嘛,对吧,你把它做一下缓存对吧,这块啊是谁的一个特殊性,是咱们Spark circle对吧,它的一个特殊性,如果说你要是这里不是SPASO的话,那就像咱于原来菲尼克斯这块,你不缓存这个数据呢,也没问题,对吧,这只只是我们这个SPA circle口对吧,它在进行转换的时候,那要求那对咱们RDD呢,需要做一个缓存。
13:18
注意啊,这块其实是有坑的对吧,没想到,因为我是想在后边是吧,咱们这个里边是会把这个东西给大家介绍的,对吧,没想到这块写错了对吧?正好呢,咱们把这块对写完错之后,正好把这个东西提前演示一下,对吧,你你想同学们就是刚才咱们出现的问题,我这块呢,如果写成我这个order wide对吧,这个stream它呢,应该什么?应该是拿不到咱们这个detail数据,这是没问题的,但是我上面输出完之后,对吧,我上面输出完之后这个数据呢,它不应该是零,我不应该对它有影响,对不对,对吧?所以说这个其实这个归基的原因在哪呢?就是这个是我们这个Spark s它的一个特殊性,对吧,就如果说你现在呢,要对我们这RDD,对吧,来进行一个转换对吧?那么在进行转换之前呢,如果你已经把这RDD呢,已经触发过行动算子了,就这个东西RDD它已经执行过了,对吧?那么这个时候呢,它就相当于什么呀,它就相当于把这个血给切断了,对吧,你就拿不到RD的数据了,对这个RD之前的数据,我现在呢,就相当于经拿不到了,对吧。
14:18
那你如果说你要想对RD做操作的话,那你怎么办呢?那你需要对吧,把咱们这个RD都给缓存一下啊,给缓存一下好了,那么这块呢,到后边还会说啊,还会说那咱们现在呢,把这个东西给我拿掉对吧,然后接下来咱们呢,再重新运行,把这个数据呢生了一下啊,正好碰到这个问题,咱们单独去说一说啊。这是关于我们SPA啊,它的一个坑对吧,它的一坑,其实你到咱们这个网上去找这个资料对吧,这个呢,让这个好多的没有这块,对好多的没有这块对好的没有这块啊。因为一般的直接就转换来用了,在他之前呢,他不会再提交咱们这个工程对吧,所以说这个是比较隐私的一个东西,对吧?好了,那咱现在呢,来再把它去执行一下啊,我现在呢,再去把这个数据呢,生成一下啊,再生一下这数据。
15:14
那把这数据生成完之后呢,咱们来看一个效果啊,这个效果。好了,这个数据过来了,对吧,那这数据过来之后呢,那咱们现在在我们这里边,我来执行一下,看一看我们现在呢,这个数据,这个数据也有了吧,那这个数据有的话,咱们现在执行我们这个对这个萨这个操作,这是不是也有了呀?对吧?这个也有了,好了,那这样的话,咱们现在的这个问题啊,想解决了,我把它稍微停一下啊。
我来说两句