00:00
刚才我们把这个data frame和data set的关系给大家讲了,那么我们现在回过头来看这张图,诶,我们能不能够RDD和data set绕过data frame直接转换呢?因为如果现在我有RDD,我想变成data set,我得先变成data,再变成data set,而data set反回来先变成data frame,你再变成RDD,会感觉是不是有点麻烦呀,不方便,所以啊,如果有一个诶非常方便的方法,能够将RDD直接变成,能够直接变成RD是一个多好的。所以它有没有呢?我们告诉大家是有的,所以我们这里先来啊,咱们先来,咱们写上一个叫做SC,咱们这么写吧,咱们叫RDD,等于SC点我们的make r DD,然后呢,写上一个list啊,咱们写上个list,这个list当中大家看一下,我们直接来,我们写上一个什么呢?咱们叫E。哎,我们现在呢,这个地方直接写个E,然后呢,我现在就写上咱们大家看一下我们刚才呢,咱们的emp当中,我们这里是不是有一个什么我们的age和user name呀,那我就写个30呗,然后写上一个咱们的张三好,然后呢,我再来写个逗号,我再来个E写个括号,然后呢,我们在这里写个40啊,咱们在这写个40,然后写上一个啊,我们写上咱们叫做李四。
01:23
好了,我现在写完以后,大家可以看到我现在把一个RDD就构建出来了,而构建出来的时候,记住我用的是样例类的方式,它里面的数据它是一个一个的样例类,那么样例类大家想想我又有数据,我又有类型,是不是里面的属性的结构也都有啊,那么既然都有的话,我们完全可以怎么办?是不是直接就可以把RDD变成data set呀,为什么呢?Data set所要的东西全都有吧,所以RDD点咱们叫做to,咱们叫DS,然后我们来回车,回车以后你有没有发现其实是可以直接变成data set的,但是有前提条件,同学们你必须是用样例类把类型准备好,如果你是一个普通的普通的字符串,普通的数字,你没有这个能力,但是呢,如果你想把它变成我们的什么,诶,我们的data set你这里干嘛呀,直接把类型给我封装好就可以。
02:22
但是其实话又说回来了,大家看我们这里呢,RDD,咱们等于咱们叫做sc.make r DD,然后呢,写个括号,写上一个list,写上一个1234好了,然后呢,我们回车,回车以后RDD.to DS啊,Data set吗?我们回车,回车以后其实你会发现是不是也有它的这种处理方法呀,所以说你其实完全可以直接转换成data set,但是你会发现用起来感觉就没那么方便了,对不对,哎,还不如呢,把多个数据封装成样例类更加的方便好吗?同学们,诶,这就是它的一个转换关系了,所以我们在这里呢,拿过来,诶咱们在这里RDDRDD呢,我们就给它拿过来啊,拿过来,然后给它放到这边来。
03:06
好了,把这个呢放到这儿,然后呢给它来啊,箭头咱们标识一下啊,这个箭头呢,我们这么写吧,咱们写上它啊,咱们叫做to啊DS,但是有个前提条件啊,就是我们的样例类啊,咱们的样例类的那个RDD,然后D我们的to DS,你这么写的话就会好很多啊,否则你这个to DS是得不到的,所以呢,把这个放过来啊,诶跑哪去了,在这嗯。好,我们说一下啊,这是样例类的RDD.to DS,那好,那你现在已经拿到了一个DS,那么我们就来写上啊,咱们来写上啊,咱们这里呢,叫做我们DS,它等于回车,回车以后,哎,不对,我们这个应该回来啊,咱们回来应该是我们的这个。然后RDD咱们写上叫做DS等于RDD.to DS回车,回车以后你现在拿到的是DS对不对,那我怎么能够得到它最基本的这个RDD呢?这个有没有办法,就意味着我的箭头我有没有办法从这个data我直接就变成它对不对,这个可能也是我们需要关心的,所以啊,咱们来看一看,我们相信应该是可以的,对吧?所以我们DS点按个tab键,Tab键当中你会发现有很多,其中它也有个什么东西啊,叫RDD,所以啊,那就意味着我直接想变成RDD非常的容易,我们只需要去RDD回车,或者说直接来咱们叫RDD我们回车,回车以后大家看一下这个就是我们的RDD,没有任何问题吧,所以在咱们的这个地方,我们写上叫RDD就可以了啊,好,把它放到中间去,所以啊,你会发现它们之间其实是可以互相转换的。
04:54
那么转换的同时啊,我们只要能够把我们的数据啊,我们的结构啊,我们的类型啊,补充完整,互相转换没有问题。
我来说两句