博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Pandas中dataframe以及spark中rdd使用groupByKey进行合并
阅读量:4315 次
发布时间:2019-06-06

本文共 1150 字,大约阅读时间需要 3 分钟。

 18.11.15更新,因为代码用set的话集群跑不了,所以更改为一直用dataframe进行操作,发现Pandas和spark中对dataframe的操作不同,所以增加了pandas的group操作

 

  最近进行关联规则算法的学习,使用的是tpch里的数据,取了customer和part两行数据如图

  而关联规则算法要求的数据格式为{customer|part1,part2,part3……},因此要根据customer号进行合并,由于使用的是spark读取tpch的数据,所以读取出来是rdd或者dataframe的形式,所以要使用rdd自带的方法groupByKey。

  首先读取数据得到rdd1

  

hive_context = HiveContext(spark)    hive_context.sql('use tpch')    customerPartDf = hive_context.sql(" SELECT c.C_CUSTKEY customer,i.L_PARTKEY part \    FROM customer c,orders o,lineitem i WHERE c.C_CUSTKEY=o.O_CUSTKEY and o.O_ORDERKEY=i.L_ORDERKEY")    customerPartDf.show()    customerPartDf1=customerPartDf.rd

  然后直接使用groupByKey方法得到rdd2

  

customerPartDf2 = customerPartDf1.groupByKey()

  这时候其实已经完成了group操作,但是使用时发现显示有错误

customerPartDf2.show()

  这是因为并没有直接对rdd进行group操作,而是做了一个操作标记,所以并未直接显示操作结果,但在后面的操作中可以发现group成功

customerPartDf3 = customerPartDf2.mapValues(list)    print(customerPartDf3.collect())

  可以看到group操作成功

  转换成dataframe的效果是

   

  标题栏又消失了,不过下面的算法暂时用不到,所以先放,遇到的时候再研究

 

  另外一开始用的是reduceByKey,后来发现好像是计数功能

 

 

  Pandasgroup操作:https://blog.csdn.net/youngbit007/article/details/54288603

 

转载于:https://www.cnblogs.com/1113127139aaa/p/9952307.html

你可能感兴趣的文章
Alpha 冲刺 (7/10)
查看>>
一款jQuery打造的具有多功能切换的幻灯片特效
查看>>
SNMP从入门到开发:进阶篇
查看>>
@ServletComponentScan ,@ComponentScan,@Configuration 解析
查看>>
unity3d 射弹基础案例代码分析
查看>>
thinksns 分页数据
查看>>
os模块
查看>>
LINQ to SQL vs. NHibernate
查看>>
基于Angular5和WebAPI的增删改查(一)
查看>>
windows 10 & Office 2016 安装
查看>>
最短路径(SP)问题相关算法与模板
查看>>
js算法之最常用的排序
查看>>
Python——交互式图形编程
查看>>
经典排序——希尔排序
查看>>
团队编程项目作业2-团队编程项目代码设计规范
查看>>
英特尔公司将停止910GL、915GL和915PL芯片组的生产
查看>>
团队编程项目作业2-团队编程项目开发环境搭建过程
查看>>
Stax解析XML示例代码
查看>>
cookie
查看>>
二级图片导航菜单
查看>>