博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
list, dict, tuple,rowproxy 转dataframe,pandas的df与spark的df互转
阅读量:7177 次
发布时间:2019-06-29

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

hot3.png

#res=DbService.getTrainData("F20000",3)#sqlalchemy查询结果--》rowproxy #res=DbService.getTestMysqlDb("F20000",3)#MySQLdb查询结果--》tuple #res=MetaDataDao.findByDrgId2("F20000")#PymysqlPool封装查询结果---》dict #row2Dataframe(res) #convert2Dataframe(res) #dict2Dataframe(res)#tuple转dataframe====>mysqlDb查询结果def convert2Dataframe(data):    df=pd.DataFrame(list(data),columns=["akc190","yka055","yp_sum","ypzf_yp","hl_sum"])    ss=df[["yka055","akc190"]]#dataframe数据选取    print(df)#dict转dataframedef dict2Dataframe(data):    df=pd.DataFrame(data)    df2=pd.DataFrame.from_dict(data)    print(df)#rowproxy转dataframedef row2Dataframe(data):    arrs=[]    for d in data:        flag1=type(d)        # todo 转tuple        res=d._row        arrs.append(res)    #todo list[tuple] 转dataframe    convert2Dataframe(arrs)#第二种:rowproxy转dataframedef row2Dataframe(data):    df=pd.DataFrame(data,columns=["akc190","yka055","yp_sum","ypzf_yp","hl_sum"])    ss=df[["yka055","akc190"]]#dataframe数据选取

pandas的df与spark的df进行互转

import pandas as pdfrom pyspark import SQLContextfrom pyspark.sql import SparkSessionimport pyspark.sql.types as typ'''pandas dataframe转spark df'''##直接调用官方api进行转换def createSpark():    spark=SparkSession.builder.getOrCreate()    df=pd.read_excel('C:\\Users\\shea\\Desktop\\测试.xlsx')    print(df)    #使用sqlContext转换    sqlContext=SQLContext(spark.sparkContext)    spark_df=sqlContext.createDataFrame(df)    spark_df.select("bah").show()#使用shema转换--针对某些列 有特殊值,不能模板匹配类型def convert2Spakr():    columns=[        ('bah',typ.StringType()),        ('name', typ.StringType()),        ('sex', typ.IntegerType()),        ('akc194', typ.StringType()),        ('zzfs', typ.StringType())    ]    schema=typ.StructType([        typ.StructField(index[0],index[1],False) for index in columns    ])    spark = SparkSession.builder.getOrCreate()    df = pd.read_excel('C:\\Users\\shea\\Desktop\\测试.xlsx')    df['akc194']=df['akc194'].map(lambda x:str(x))#操作某一列,将timestamp转为为string    #dataframe转list    ss=df.values.tolist()    ss_tuple=list(map(lambda x:tuple(x),ss))    spark_df=spark.createDataFrame(ss_tuple,schema=schema)    spark_df.show()if __name__ == '__main__':    #createSpark()    convert2Spakr()

 

转载于:https://my.oschina.net/shea1992/blog/3029197

你可能感兴趣的文章
脱壳免杀技术大纲
查看>>
Spring Cache
查看>>
Linux下Mysql常用命令
查看>>
进阶-中小型网络构建-二层VLAN技术详解配实验步骤
查看>>
LVM逻辑卷管理
查看>>
java crm 进销存 websocket即时聊天发图片文字 好友群组 SSM源码
查看>>
通俗讲解边缘计算,抓住信息革命的浪潮
查看>>
关于适配这件小事的前世今生
查看>>
用TMG搭建×××服务器(四)---基于PPTP的站点到站点×××
查看>>
datatables表头与数据无法对齐的解决方案
查看>>
Cisco 路由器 secondary address实现RIPV1不连续子网
查看>>
每天一个linux命令(14):head 命令
查看>>
通过 Apache 配置 Rewrite 支持 .htaccess
查看>>
如何从硬盘安装WIN7原版镜像?
查看>>
ceph学习笔记之六 数据读写过程
查看>>
为UC做准备:准备Exchange 2010的先决条件
查看>>
Eclipse快捷键大全(转载)
查看>>
weblogic启动脚本
查看>>
cPanel推出测试免费试用
查看>>
Wireshark的https代理抓包(whistle中间人代理)
查看>>