00:00
刚才我们已经把环境创建好了,对吧?同学们,那接下来我们是不是应该执行基本的逻辑操作了,那我们怎么来做呢?首先啊,咱们就按照咱们之前讲解的方式,我们这样啊,咱们把RDD啊来给它构建一下,然后呢,把它转换成frame啊,还有我们的data set,嗯,是这样的,但是呢,我们这里呢,这样我们这个RDD的这个转换呀,咱们先不做,咱们先把最基本的data frame data set,咱们先给大家演示出来,对吧?然后呢,我们再来演示什么呢?比方说RDD,它转换成我们的data frame,还有呢,它这边是可以互相转换的吧,对吧?还有就是我们的这个叫data frame,然后呢,他再来我们的转换对不对,转换成data set,还有再来我们RDD,再转换我们的data set,所以啊,咱们分这么几个,我们的步骤给大家去讲一下啊。首先我们的第一个,第一个是什么呢?就是如何构建data frame,这个咱们说过了,咱们的Spark当中点它其实呀会有一个read的方法,这个read呢,点它会有很多的格式,其中有一个叫做JA森,这个Jason呢,我们可以在里面干嘛啊,写路径,所以大家看一下,在咱们的这个地方,咱们来找一下,我给它来一个new,创建一个文件,咱们就叫u.Jason然后呢,这个里面我们写个花括号,然后写上咱们叫U内,然后写个冒号,然后叫张三,好了,写个逗号,咱们叫做年龄给个20吧好了,然后来我们这里写上咱们叫李四,然后呢写个30,然后呢,这边我们写上一个我们的王五。
01:46
啊,王五,给他一个我们的事实,好,那写完之后,那我接下来呢,我们要干嘛呢,我们就读取这个文件,所以叫date式斜杠。我们叫U点杰森,然后点一下叫VAR回车,回车以后大家会发现咱们现在就得到了一个DF,咱们叫frame,那么这个frame对于我们来讲就非常的简单了,为什么呢?直接展示不就够了吗?所以我们这里直接回车让它展示出来是吧?诶,所以我们直接运行。
02:20
那么这个时候呢,你就会发现呢,我们跟那个命令行工具当中读取我们的data frame是不是没有区别呀?诶基本上代码是一致的啊,但是肯定会有一些变化,这个我们在后面呢,给大家详细的来看啊,现在先不管它,只要数据能出来其实就够了啊。好了,同学们看现在数据是不是已经出来了,你看我们的年龄,我们的怎么称,20,三十四十,张三李四往五,没问题吧,好,没问题,那咱们可就该做后面的操作了,咱们干嘛呢?现在呀,咱们要用两种方式,哪两种呢?一个叫circle,还有一个叫DSL,对不对?所以我写上叫data frame,然后呢,哎,用circle的方式,还有一个呢,我们叫data,我们的frame用我们的DSL的方式,嗯,那这个地方我们该如何来做呢?首先我们的DFDR,我们叫大家还记得吧,有什么replace view,有这个叫time view,还有这个叫global,还记得吗?这个global叫全局,对吧?那咱们为了简单方便,咱们就直接用这个了啊,我写上咱们就叫U,我创建一个临时的视图,然后呢,我们点叫,哎,别点了,直接来吧,我们接下来呢就写上叫spark.circle因为现在这个U的视图已经。
03:41
就有了,那么我们circle文当中就可以访问这张视图了,这个视图啊,在咱们数据库表当中啊,跟那个table非常类似,它唯一的区别呢,是我们的view只能查不能改啊,Table是可查可改对吧?诶,不一样,这个倒没事啊,咱们主要目的不也是查嘛,来,我们写一张叫select的形from u,对吧?诶,你这么写完以后直接展示,这就是最基本的circle的操作,诶,但是呢,当然了,你这地方还是可以干嘛呀,比方说改成一下啊,我们叫做age,然后呢叫username也可以这么写,或者呢,你还可以这么写,你把这个去掉,咱们叫做平均值,这些都是可以写的,S文呢,在这都没有问题啊,好,运行。
04:31
好了,同学们看结果出来了,结果出来的话,你看我们第一个是吧,直接全长,第二个呢,也是一样的,把两个字段加上,第三个呢,就是年龄的平均值没问题吧,哎,所以啊,基本的操作应该是正确的啊,然后呢,接下来我们再往下看,下面呢是我们的DSL,那么DSL的话就不需要创建什么我们的这个表了,我们直接拿咱们的D其实就够了,然后点我们叫做select,然后呢,我们直接写上咱们的啊,我们写上叫user name,然后点一下,诶,咱们这么写是可以的,对吧?或者你还可以怎么办,你还可以跟咱们前面是一样的。
05:12
比方说写个Dollar符,然后写上加一,还记得吧,哎,加上一,但是大家有没有发现你这么写出了问题了,什么问题呢?你这么写了以后,我们说过了,我想着想让年龄加一,但是这个年龄啊,它会自动关联咱们的数据上,我们才会用一个刀勒符,对不对,但你会发现不行,不行的原因就在于我们没办法帮你转过去,那该怎么办?所以啊,这里比较特殊了,咱们就说一下啊来,嗯。我们再啊来写上在我们使用我们的嗯,呃,Data frames啊,咱们叫data frames啊,呃,如果它涉及到啊,涉及到咱们的转换操作,比方说这你就是将一个我们的字符串转换成咱们查询的列来做一个计算,对不对,那么涉及到转换操作的话,那么需要引入咱们叫转换规则,咱们叫转换规则,但这个规则呀,是我们直接可以拿过来用的,所以我写上叫import,咱们叫做Spark,那Spark点我们叫做implicit,嗯,咱们的隐私转换点一下下划线,在咱们的SC当中,我们会有一个隐视转换功能,那么它可以自动将我们的一个类型变成另外一个类型来做操作,所以我这个时候加Dollar符就没问题了,所以这个就是我们的隐视转换的导入,那么这个导入啊,希望大家注意,注意什么呢?咱们的这个Spark可不是包名的意思,大家看。
06:41
我们前面是不是有org阿帕奇Spark呀,你别误会了,这个不是包名,它是什么呢?它是我们的变量的,或者说我们对象的名称。因为咱们在之前呀,咱们构建了一个上下文的环境对象,叫做Spark,那么你的这就可以叫spark.implicit说的简单点是把这个对象当中的内容直接拿了过来,哎,这是一种特殊操作啊,诶老师,那万一我这不叫做SPA叫叉叉呢?如果你叫叉叉的话,你打开其实你会发现也一样。
07:17
你的叉叉只要跟它是一样的就没问题,所以啊,咱们这就后退就可以了啊来再变回去,变回去,那这个时候呢,它应该是有的,好,那我们再来,因为这种方式会感觉有的时候啊,哎,看着有点乱嘛,所以呢,有的时候可以用什么呢?用单引号,单引号把这个去掉也行,那也行,这样的话更简洁一些,对吧?好,我们现在来试一试。好,同学们看,结果出来啦。
我来说两句