00:00
接下来我们把这个数据的加载和保存,我们再来看一看啊,这个加载保存就跟刚才一样,spark.read.load啊,然后后面呢,有一个叫做data frame.right.save啊,这是通用的,我们的保存,这个是前面是通用的读取啊,然后呢,他们其实都有不同的这些方法,比方说formity啊,Load option有不同的方法,这个咱们后面呢,给大家去演示啊,然后他说了,有的时候为了方便呀,其实可以呢,在写circle文的时候不写那个临时表,因为咱们之前呢,创建data frame的时候啊,然后呢,我们要创建临时表再去查询,有的时候比较麻烦,它这里呢,可以用一种特殊的方式来做这个事情,同学们看一下来啊,比方说在咱们的这个地方啊,来咱们写上叫做嗯,spark.circle然后呢括号,然后写上叫select的星,然后叫from,本身呢,我们应该写个U的,对吧,我们应该这么写,但是呢,你这样的话呢,先把一个文件读取过来,创一张表,之后你再做操作,这样的话就稍微显得有点麻烦。
01:00
所以怎么办呢?你可以这样,我用Jason的格式点,诶,按个标号啊,然后写上一个咱们叫date,咱们叫u.Jason你这么写就表示的是把这个文件当成数据源,用杰son的方式从里面读数据,然后呢去查询,这样的话就会简单一些,倒不是说好像是代替的表是吧,其实底上还是表嘛,只是中间的转换过程由我们SPA circle自己完成啊,回撤。回车以后你会发现我们的数据呢,其实就能出来啊,咱们可以稍微的等一等,看一看。好,大家听到数据已经出来了,对吗?哎,就是这个意思啊,好,我们接着往下,往下呢是我们这里的保存数据啊,它的默认的数据格式呢,就是那个pack啊,但是呢,我们也可以采用那个format,对不同格式的数据做保存也是没有问题的啊,但是呢,它这里说了,它保存操作呢,会有一个叫模式,叫做保存的模式,这句话是什么意思呢?同学们看啊,来咱们回来,回来以后咱们叫DF啊,然后来咱们看一看啊,比方说我们这里,嗯,在咱们这边,咱们后退啊后退,然后把这两个都删掉啊,把这个output都删掉,删除,删除以后现在我干什么呢?我这样咱们叫DF,点咱们叫right,点我们的format,给他一个我们的Jason,然后点咱们的save,对吧,咱们就叫output好了,然后现在我回车,我回车以后就出现保存完成的操作,那么这里呢,我们刷新一下,然后有个output,这没有任何问题,这就是我们的JA。
02:34
那么这个Jason大家会发现,前面呢,它叫PARTITION5个零,这个其实是分区的意思,而中间的这几个数字呢,其实是我们的一个唯性标识,这个叫Jason对不对,没问题吧,好,那我现在呢,给他再来执行,由于你的那个文件名本身是不能重复的嘛,那不能重复的情况下,你再执行应该会产生新的,但是你回车你就会发现不行,你回车以后他直接告诉你它已经存在了。
03:02
哎,就这样,按理说你文件名都是不重复的,你就再生成一个又能怎么着呢,对不对,但是不行,他会告诉你不对,为什么不对呀,就是因为这个保存模式,因为默认情况下,当你的文件路径已经存在的情况下,它会抛出异常的,叫做AR。如果你不想。让它抛出一场你的动态改变它的保存模式,这个保存模式会有个叫mode,那会有一个我们的mode操作,所以呢,我们现在呢,可以用它来做处理啊,咱们来看一看,那就意味着在我们前面这个地方来,我们写上一个叫mode,然后呢,在这里写个括号,写上一个它,然后写上一个我们就叫aendd啊end叫追加,追加什么意思啊,就是你原来有我追加一个新的,所以回车,回车以后咱们看这边原来是我们的一个你刷新。刷新就俩了吧,对不对,哎,就是追加的意思,但是呢,你还可以干嘛呢,叫overright overright就是给它覆盖掉,就是你有啊,我就给你覆盖掉,就这意思,好我们再来。
04:05
把这个改成啊,改成我们去掉,我们叫做over啊right好了,那么我们现在呢,给它来啊不对,Over right啊right嗯。好,然后呢,回车,回车以后你看一看,大家看啊,原来是两个吧,你刷新刷新以后你看啊,这叫7B76刷新,刷新以后还是那么不是了,前面两个文件是不是都删除了,诶产生了一个新的,所以这就叫覆盖的意思啊,还有一个叫I ignore ignore呢叫做忽略,就是如果你有是忽略的,你没有就创建,所以啊,还有这么一个事情啊,这个呢,我们也来演示一下吧,来。咱们叫啊,然后呢,因为我们现在这边已经有了嘛,所以你回车,你回车以后,它看不出任何效果来,刷新没有任何反应,忽略了,哎,就是这个意思啊,所以这是我们的保存模式。然后呢,我们再往下看啊,下面下面呢叫pocket,这个pocket是我们10SPARK circle当中默认数据源的格式啊,它是能够有效存储嵌套数据的这种劣势存储格式啊,这个呢,了解一下啊,如果你觉得这个park呀,感觉不合适啊,你可以这样,你可以在咱们的配置项目上面去改一下,把它的数据源的名称改成我们的什么杰森呢,改成其他的都可以啊,但是我们就个默认的就不用管它了,嗯,然后接着往下啊,往下下面呢有一个叫做JA森,这个JA森呢,我们说了,它能自动推断JA森数据集的结构,并把它加载为一个,这样的数据可以通过我们的read.jason去读取接文件,但是你要注意,我们的接son文件的要求是每一行要符合一个Jason的格式要求,它不是说整个文件符合,而是只要一行符合就够了,因为咱们10SPA个读取文件,它采用的是一行一行的方式读取的。只要每一行符合接。
05:59
格式那就够了,所以每一行应该是这个样子或者是这个样子才可以啊,绝对不能说啊,说这个东西有个什么逗号啊,有个什么,呃,一些别的操作那就不行,它会读取有问题的。
06:12
好了,这个呢,我们说一下就可以了,因为这种操作呢,我们之前已经演示过了,包括那个我们的JA省对吧?诶就是这样的啊好了,这个呢,我们就说到这里啊,它加载它了,然后下面呢,有一个什么东西呢,叫CSV,就是你还可以读取我们的CSV文件,这个文件我们可以给大家看看啊,来打开我们点一下,点完以后在我们的example,咱们s RC men啊里面有个resource,这里面有个叫people,点我们的CSV文件,那我们现在完全可以去读取它。只不过读与它的时候啊,这里面需要有一些步骤,所以我们拷贝啊,来咱们拷贝,拷贝以后我们拿过来放到这里,我来确认一下,首先spark.read form csv,这意味着我们是用CSV的格式来读取,然后呢,这个option呢,问的是分割符,数据的分割符,我们默认情况下CSV应该是用逗号,但是我这里呢,用的是分号,这个我们可以看一眼啊,来把这个打开。
07:09
打开以后点一下,这里面呢用的是分号,其实我们完全可以用什么逗号,因为本身CSV就应该是用逗号隔开的,但这里用的是分号,那么他用的什么分号没关系,因为我们这边呢,就把它呃写成了我们的分号对吧,然后呢,这个呢是我们的什么option option对吧?然后接着往下,下面有个叫headher为true,这什么意思呢,就是有表头啊。咱们这个表头,这个就是name age和job,它就是表头啊,然后呢,这边有个叫load load date you,这个应该不对啊,咱们这里面应该写上,咱们写上咱们叫做people。咱们叫CSV啊,咱们叫CSV,把这个路径呢,给它拿过来啊,拿过来拷贝,拷贝以后放到这个位置好了,然后呢,我复制一下,复制以后在咱们这个地方来,嗯,好,给它运行一下,哎,回车啊,回车回车以后如果没有问题的情况下,那么我们这里应该是我重新来一遍吧,在这边我们写上一个DF啊,等于然后回车,回车以后DFDR啊,咱们的展示啊,你看我们的name age和job就变成表头了啊,就是我们的呃,列名了对吧,下面就是我的数据,这样的话,我们的CSV文件就被读取过来了,就是这个意思啊。
08:27
好,这个咱们先说到这儿。
我来说两句