
行转列、列转行
SQL, Python实现
Contents
SQL, Python 中解决行转列、列转行的问题
在日常工作中总会遇到类似下图中的问题 👇

我把这种情况称为 行转列
《Python for Data Analysis》 书中将其称为 Pivoting “Wide” to “Long” Format
还有这种问题 👇

我把这种情况称为 列转行
《Python for Data Analysis》 书中将其称为 Pivoting “Long” to “Wide” Format
那么,接下来将针对此类问题,汇总SQL、Python中的实现方式
行转列 / “Wide” to “Long”

SQL
基于 spark-2.4.5U3 及以上版本
|
|
基本思路是将表中 range_label和nums转化为类似json的格式,之后通过 key 索引得到对应的value
这里用的是collect_set(),得到的是聚合、去重后无序的array,若需要有序则可用sort_array()
Python
构造数据
|
|

pivot() 函数
|
|

列转行 / “Long” to “Wide”

SQL
基于 spark-2.4.5U3 及以上版本
|
|
map 之后,结合 lateral view explode1 实现列转行的问题
Python
构造数据
|
|

stack()函数
|
|

胡子叔叔的小站