1,行转列:
1.1,首先行转列的函数有:concat():把字符串连接在一起,可以有任意字符,缺点是要重复写分隔符。concat_Ws(),第一个参数可以指明分隔符,第二个参数可以是集合,字符串。collect_list():收集器,可以收集元素放进集合中,也可以作为concat_Ws()的第二个参数。上面几个为行转列常用的函数。
2,列转行:
2.1,这个案例的话,还是比较容易的,最主要的是理解explode():炸裂的意思,主要作用就是把map集合和array集合一个个元素炸开,在通过lateral view 侧视图进行连接(可以把它当作join来看待),这样好理解一些。
2,窗口函数和编号函数:1,窗口函数:
在我看来窗口函数就是在文件的本身进行处理数据,并不需要物理切分,一些繁琐的操作,这大大提高了数据的可操作性,over()随着行的改变可把范围变广,最通用的是把数据根据字段分区排序,来整理数据,然后再一步步操作。其中包含了以下几个函数:
1,n preceding :前n个数据
2,n following :后面n个数据
3,unbounded preceding :表示从前面的起点
4,unbounded following :表示到后面的终点
5,lag:参数一字段,往前第n行数据
6,lead:往后第n行数据
7,nt



