行列互转在数据分析与挖掘中是经常遇到的问题,这篇文章总结了pyspark中行列互转的方法,首先我们先创建测试数据集。

from 

列转行

pivot 实现

透视操作简单直接,逻辑如下

按照不需要转换的字段分组,本例中是年月;

使用pivot函数进行透视,透视过程中可以提供第二个参数来明确指定使用哪些数据项,(可以指定不再DataFrame中schema的字段);

汇总数字字段,本例中是收入;

pivot只能跟在groupby之后

test_pivot 

collect_set间接实现列转行

coin_df 

后续可以通过sparksql对player_num这个数组进行解析 player_num[0] player_num[1] player_num[2] 等语句对playernum字段进行拆分,最终实现数据的行列互转。为了实现sql语法,我们将coin_new储存为临时表,然后通过数组拆解的方法实现行列互转,语法如下。

coin_new

行转列

selectExpr以及stack实现数据的逆透视

Spark没有提供内置函数来实现unpivot操作,不过我们可以使用Spark SQL提供的stack函数来间接实现需求。有几点需要特别注意:

使用selectExpr在Spark中执行SQL片段;

如果字段名称有中文,要使用反引号` 把字段包起来

# 逆透视Unpivot

参考链接

https://juejin.im/post/6844903619171631117

更多资讯关注微信公众号:DataScienceArt,不定期分送各种小福利。

pyspark sparksession_pyspark中的行列互转相关推荐

  1. 将二维数组中的行列互换

    情景:二维数组可以存储表格数据,还可以根据下标索引加入各种运算,而且图片的关键运算方法也是以二维数组为基础进行矩阵运算的. //创建二维数组int arr[][] = new int[][]{{1,2 ...

  2. numpy使用[]语法索引二维numpy数组中指定行列位置的数值内容(access value at certain row and column in numpy array)

    numpy使用[]语法索引二维numpy数组中指定行列位置的数值内容(access value at certain row and column in numpy array) 目录

  3. 求1到n中与n互质的和(数论)解释及证明

    给出一个N,求1-N中与N互质的数的和 ∑i=1ni[gcd(i,n)==1]\sum_{i=1}^n i \qquad[gcd(i,n)==1]∑i=1n​i[gcd(i,n)==1] 反证法:gc ...

  4. 好好学习:Excel中如何行列转置

    今天在处理数据的过程中,出现要将excel中sheet一列内容变成表头,结果一番收拾,好不容易拿下. 1.Excel打开工作簿,选中sheet需要进行行列转换的列,我的有75行. 2.单击" ...

  5. 怎样吧excel中的行列转置

    要将Excel中的行列转置,可以使用Excel的"复制并转置"功能.首先,选择要转置的行和列,然后点击"复制"按钮,接着点击要转置的位置右键,在弹出的菜单中选择 ...

  6. excel行列互换_办公软件操作技巧043:如何在excel中实现行列转置

    在日常工作中,有时我们需要将excel表格数据的行列进行转置,也就是把行列的数据互换,如下图所示,今天我们就来分享在excel中进行行列转置方法. 行列转置 方法一:复制粘贴法 第1步:选中表格数据- ...

  7. Java中数组行列互换

    数组中的行列互换,有个前期,就是:这个数组必须是N * N的,即就是在数组 int[a][a]: 具体实现就是 1 2 3 4 5 6 7 8 9 由上表变成下表 1 4 7 2 5 8 3 6 9 ...

  8. flex array java_Flex中ArrayCollection 与java中的ArrayList互转

    Flex中ArrayCollection与java中的ArrayList互转 这里说这是Flex用remoting传一个ArrayCollection到后台(后台也用ArrayCollection接参 ...

  9. mysql中的行列转换

    mysql中的行列转换 案例:1 两张表合成一张表统计各个分类的总数. 建表语句 # doc表建表语句 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; - ...

最新文章

  1. Cervical Cancer mechanism
  2. 《从零开始学Swift》学习笔记(Day 10)——运算符是“ +、-、*、/ ”吗?
  3. 学长毕业日记 :本科毕业论文写成博士论文的神操作20170316
  4. 腾讯云主机Python3环境安装PySpider爬虫框架过程
  5. 从架构到源码:一文了解Flutter渲染机制
  6. upc组队赛15 Supreme Number【打表】
  7. github 学习使用
  8. 12GB超大内存!华为超级旗舰手机悄悄现身
  9. Linux snmp 时间戳,linux snmp计数器汇总
  10. QTextEdit 不允许输入文字
  11. Linux修改hosts主机映射文件
  12. 西门子cnc sinumerik_2020邯郸cnc加工中心编程要多久就是工厂傅
  13. 微商引流脚本,微商怎样选择正确的引流脚本?
  14. 所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。
  15. 百度LBS开放平台个性化地图 制作一款独一无二的地图
  16. 【Unity】Obi插件系列(六)——Obi Rope
  17. linux curl t上传文件,curl 命令行上传文件
  18. 三十岁开始学Java
  19. 小迪渗透内网渗透(玖)
  20. c/c++编程学习:空指针是什么?

热门文章

  1. 调用本地html_requests-html:最简单的爬虫框架,看完你就会了
  2. android studio 学习入门篇
  3. php获取目录文件 排序输出,php实现对文件夹目录中的文件进行排序的方法
  4. numpy 滑动窗口取数据
  5. 根据时间点截取wav文件
  6. Python字符串转数字
  7. java反射 数组类,乐字节Java反射之三:方法、数组、类加载器和类的生命周期
  8. oracle去掉blob的黑边,oracle Blob处理
  9. C++_泛型编程与标准库(一)
  10. 《C语言程序设计基础》第2章作业,清华大学出版社-图书详情-《C语言程序设计基础实验与题解》...