00:00
好,讲完了行,转线又来个列表,行是吧,他们两个互相走其实也很正常,你想想看,他给你的数据是这样子的,那你想着要把它拼接成这种啊。那有时候他给你的数据是这种吗?那你想的是不是要把它拆开啊,因为他要统计什么呢?他假如说要统计一个射手座多少人。射手座多少元,拿着这个东西没法统计吧,这个东西能统计吗?你直接对这张表什么select摄入度不行吧,那就要涉及到你把这东西给它拆开吗?是不是这个就要用到。列转行,列转行啊,就是它本来这是在一个列里边吧,这是不是一个列啊。对吧,一个列之后,这个列里面内容比较多,然后你要干什么,哎,把它分到大海一行,然后凤解一行是吧,设计数据的时候没有故意的,就就是就是很很巧的,他们俩就到一块了,就是他有这种需求,这种需求那可能他觉得这个还好,那看我们这个例子。
01:14
啊,它的一个实际数据是这样的。啊,其实跟我们这个差不多。哎,它是这样的。诶,他他本身就是前面就没有空格了啊。这个前面是一个电影的名字吧,电影的名字后面是他什么。类型啊类型这很正常吧,就一个电影有很多种类型的,对吧,什么。爱情片什么动作片是吧,不是不是吗?你为什么放一起了对吧,还有剧情片是吧,然后他要统计一下来,爱情片有多少多少个,可不可以啊,他肯定有这种需求啊,你像那种什么大型的优酷啊,什么爱奇艺啊,这种网站,他肯定要做这种统计的,肯定要做这种统计的,但是他一个电影或者说一个电视剧啊,他肯定不止一个题材的吧,啊不止一个题材的,那这个时候呢,你要涉及到。
02:14
把这个东西给他打开,那最终打开的样子肯定是这种啊。对吧,他不有他后面有四个吗?你要用每一个电影啊。跟着。它相应的单独的一个类型,单独的一个类型。啊,那这个怎么做呢?那首先我们把这个拿过来看一下,也就是说我们要通过这个数据啊,最终得到的结果是这样,你把这个分割开了。这个就是下面就是列转行了是吧,他要通过。这一堆数据,得到这一堆数据。得到这类数据,其实我们现在已经会啊,会把这类数据变成这个了吧,对吧,已经会了,但是这个倒了,转过来我们还不会,这里边也涉及到几个函数来看一下啊。
03:12
我们来分析一下这个函数的用法。炸裂,炸开。他什么看?将HAVE1列复杂的或者结构拆分成多行。拆分成多好?那我们来演示一下单独的这一个函数的用法吧,还是跟刚才一样,一个函数来看一下它到底是怎么用的,那我们就要导入数据了吧,把数据创建一下。VI一下,1.t走一下,然后把我们的数据拿过来。
04:00
CTRLC,看到没,数据有了,然后就表了简表语句,我们拿一下。在这,但这个界面语句相聚一下,它里面用到了一个。就是类型用的是数组微型,那你后面叫指定。这个数组按什么分割的吧,按什么分割的,就这个注意一下,稍微注意下就OK了,CTRLC,我来走一下数table。Movie这个电影movie info吗?哎,Movie已经有了,那接下来把数据导进来,漏。这场localee,然后是OT。Model。对的,下面有一个。movie.txt是吧?movie.txt,然后into table,然后是movie for moving for,这张表走一下。
05:10
Select新from moving for这张表,哎,数据已经被我们导进来了。接下来我们首先要测一下这个XL这个函数,X这个函数,它说了将一个复杂的O或者ma结构拆分成多行,那我们就单独用一下这个函数,那怎么用呢?直接explore加上这个。Category,它是不是一个数组啊?把这个数放进去,让它炸开,直接from。说上这个moving这张表吧,看它,看这个函数,直接就单独用一下,看他给我们返回的是什么结果,然后我们再根据这个结果来分析我们接下来的事情该怎么做呢?
06:00
来看。中。这什么完全拆开了吧,你看这四个是不是那个什么疑犯追踪的呀,一犯追踪的,然后后面这个五个是吧,那看三个吧,三个这个是什么战狼的是吧?哎,中间五个是他的。是它的来读me,来读me啊,那有了这个函数之后。是不是很爽啊,直接一个函数搞定了这些是吧,但是你要的结果是什么样的?前面还有电影呢,那你首先想到的是不是这样?前面加一个。这个太慢了是吧,他的一个自带名是什么。建表语句。Movie是吧,就是movie,那如果加一个movie。大家觉得这靠谱吗?首先我们不知道它能不能运行,对吧?假设它能运行,它结果应该是什么?
07:03
笛抗级是吧,就是这个抵抗二级,不是两个表的抵二级,也就是说这个疑犯追凶啊,它会对着这么多吧,是不是啊,就这一条数对了这么多,然后let to me啊,它也对应这么多,如果假设它能执行的话,它是不是应该是这样的一个结果?对它不靠谱的,但是我们来看一下它能不能运行啊。直接就。不能运行,那它就不支持这种。不支持这种。啊,那我们要引入另外一个函数。在这儿。View view,它通常的一个用法就是跟着一个UUDTFUDTF就是这个。类似于这种的把它拆散开的这种函数。还有一个u daf上就是udf知道吧,Udf不是聚合函数吗?这个是不是跟聚合是反过来呀。
08:02
啊,它本来是在一行,你现在把它变成多行,也就是拆开的这种啊,它叫UDTFUDTF这种letter view网,它通常是跟UDTF规范连着用的。连着用的,它表示什么意思呢?看一下它,其实你想想看,你本来是一张原始的表,是无比这张表啊。哎,Letter letter view,然后加上一个UTF,它就表示这个查询出来的字段,对你原来的表进行测写。缩写大家不要熟是吧,侧面描写啊。侧面要写写一个人。长得黑不不写,它直接长得黑是不是,是不是把它扔到煤堆里面找不见了是吧,这是不是相当于侧面描写啊,啊,其实它这个也一样,它就是形成了一个新的表,一个外部的一个表,然后对原来的表进行测写。进行测写。啊,这个时候,那你想想看,它是对于原来表进行缩写的吧,那你这个字段,你这个UDTF这里面的字段是从哪来的,它肯定知道在原始表里面哪个位置了,哎,他就能找到关联的之前的那个电影。
09:12
之前的那个电影,那我们来说一下吧啊。那我们知道要用那个viewer。Selection。Movie肯定要有吧,因为你想想看你这个你你你还是要根据什么,你最终的一个需求嘛,你movie放在这儿,这是第一个字段啊,Movie第二个字段呢。应该是他的一个侧写字段吧,注意这后面是跟着一个临时表明,然后这是字段的,就是这个字段你指的是。他炸裂之后,你给它取个名字。你给它取个名字啊,是这个意思,好,那我们就叫,等我炸裂开来,我们就叫categ green。那单独的一个行不行啊,啊就是这个。
10:01
啊。查询的两个字段有了。From。From,哪张表要有吧?是movie这张表是不是?Moving in for,然后要对这moving in for进行侧写啊,Moving for进行侧写就是let view。CTRLC拿过来,然后用这个一个UDTF,其实就是我们这里面的X pro,因为我们已经用了X pro,其实它就是把。具体的一个数组,给它分成到多行里面显示吧,OK,那其实就是这个内容是吧,他C拿过来用这个,然后给它表取个别名,我们就叫ta。我可以吧,然后孩子,然后一个这个列名一定要跟这个一样的吧,因为你前面要用他的。这样就是用用你这个炸开的这个表,对原来的这个movie符这张表进行侧写,然后再根据相应的内容插序去。
11:09
具体的你要的这个数据啊,你要的这个数据来走一下。是不是就是我们要的结果,更多的时候这个that view,它肯定是要跟一个。UDTF各一半用的,然后对原来的表进行测写。要不然你直接写,把部位写在这儿。一开始是不是做了一个,我们是不是做了一个这样的一个操作,把末位写到这。因为我们分析了,首先它是不能执行的,我们执行过后最后知道了,对吧,假设它能执行,我们想象的也是不靠谱的吧,他肯定是一个笛抗级是吗?他肯定是不行啊,那你要想做到就是它关联它炸开的这个力呀。
12:00
他还要找到对应的他之前原来的数据,哎,你就要用,那他没有对原来的这张表,无非这张表进行测写。啊,进行侧写。就是这个函数。这是其中的它的一个列转行,列转行。
我来说两句