欢迎访问本人的CSDN博客【Together_CZ】,我是沂水寒城。

https://yishuihancheng.blog.csdn.net

在大数据处理领域里面,Hadoop和spark可以说是最广为流传的两个神器,随着计算力的不断发展和数据量的急剧扩大,当前愈来愈呈现一种以Hadoop为基础存储以spark为核心计算的体系模式。

spark同样也提供了对于python的支撑,我们可以通过pip的安装方式来安装pyspark模块从而完成与spark的交互,关于Hadoop和spark这一套环境的搭建的工作在我的博客里面都有涉及,如果需要这方面的详细介绍的朋友可以留言,我后续会发文出来进行介绍。

今天的分享内容主要还是基于pyspark完成一些基础的计算工作,主要是对经常使用到的两种数据库MySQL和SQLServer的交互操作进行介绍,如果抛开pysaprk不谈,单纯基于python来操作这两种数据库本身没有什么难度,在我的系列博客里面都有详细的文章,同样如果需要的话可以前去浏览或者给我留言,我后续再头条发文出来。

基于pyspark来对数据库进行操作是很重要也是很基础的一环,为了简化整个操作过程,我对MySQL和SQLServer数据的操作都封装成为了一个单独的函数,可以直接拿去使用的,下面是我的具体实现,非常简单,只要细心点就好了:

首先是pyspark操作MySQL数据库,实现如下:

def mysqlDataRead(table='table'): ''' 读取 MySQL 数据库内容 ''' sqlContext=SQLContext(sc) url='jdbc:mysql://'+mysql['host']+':'+str(mysql['port'])+'/'+mysql['db']+'?'+'user='+mysql['user']+'&password='+mysql['passwd'] df=sqlContext.read.format("jdbc").options(url=url,dbtable=table).load() print '==========================================================' df.show() all_columns=df.columns print '==========================================================' print all_columns res_list=df.collect() print '==========================================================' print type(res_list) print '==========================================================' result=splitRowData(all_columns,res_list) for one in result[:10]: print one sc.stop() return result

在使用上述代码的时候,只需要修改对应的数据库连接字段的信息就好了,简单测试结果输出如下:

table='(SELECT * FROM myTable LIMIT 5) T'mysqlDataRead(table=table)

接下来是pyspark操作SQLServer数据,具体的实现如下:

def sqlServerDataRead(table='TableName'): ''' 读取 SQLServer 数据库内容 ''' url='jdbc:sqlserver://'+sqlserver['host']+':'+str(sqlserver['port'])+';DatabaseName='+sqlserver['database']+';'+'username='+sqlserver['user']+';password='+sqlserver['password'] sqlContext=SQLContext(sc) df=sqlContext.read.format("jdbc").options(url=url,dbtable=table).load() print '==========================================================' df.show() all_columns=df.columns print '==========================================================' print all_columns res_list=df.collect() print '==========================================================' print type(res_list) print '==========================================================' result=splitRowData(all_columns,res_list) for one in result[:10]: print one sc.stop() return result

在使用上述代码的时候,只需要修改对应的数据库连接字段的信息就好了,简单测试结果输出如下:

table='(select top 5 * from myTable) tmp'sqlServerDataRead(table=table)

该函数的使用说明同MySQL数据库函数的调用,都是只需要将我代码里面的数据库连接字段修改为自己的数据库连接配置信息就好了。

欢迎交流!

nodejs操作sqlserver数据_pyspark操作MySQL、SQLServer数据库进行数据处理操作相关推荐

  1. ssh项目同时使用mysql跟sqlserver数据库_MSSQL_如何把sqlserver数据迁移到mysql数据库及需要注意事项,在项目开发中,有时由于项目 - phpStudy...

    如何把sqlserver数据迁移到mysql数据库及需要注意事项 在项目开发中,有时由于项目开始时候使用的数据库是SQL Server,后来把存储的数据库调整为MySQL,所以需要把SQL Serve ...

  2. Python量化数据仓库搭建系列1:数据库安装与操作

    Python量化数据仓库搭建系列1:数据库安装与操作 本系列教程为量化开发者,提供本地量化金融数据仓库的搭建教程与全套源代码.我们以恒有数(UDATA)金融数据社区为数据源,将金融基础数据落到本地数据 ...

  3. python读取sqlserver的数据_Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例...

    本文实例讲述了Python实现读取SQLServer数据并插入到MongoDB数据库的方法.分享给大家供大家参考,具体如下: # -*- coding: utf-8 -*- import pyodbc ...

  4. Mysql ---Sqlserver数据迁移到Mysql(Mysql建表迁移数据)

    1 试用了MysqlWorkBench的数据迁移功能 以为能实现:建立跟Sqlserver一样的表结构和视图的功能,sqlserver的数据迁移到mysql 实际上发现:即使勾选了表和视图,实际上却只 ...

  5. django mysql数据同步_[django同步数据库]Django去操作已经存在数据的数据库

    数据库,各种表结构已经创建好了,甚至连数据都有了,此时,我要用Django管理这个数据库,ORM映射怎么办??? Django是最适合所谓的green-field开发,即从头开始一个新的项目 但是呢, ...

  6. 【MySQL数据库开发之三】MySQL 获得数据库和表操作!

    通过上一篇的介绍,大家可以创建自己的数据库和表以及插入表中数据等等,本章继续介绍更多的数据库的相关操作:   1.  查看所有表单数据:(这里我直接使用上一篇创建的himiDB数据库与其中的peopl ...

  7. mysql创建数据表列子,MySQL 创建数据库及简单增删改查

    MySQL 创建数据库及简单增删改查 我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下: CREATE DATABASE 数据库名; 登入: Enter passwor ...

  8. nodejs操作mysql查询返回的数据_nodejs连接mysql进行数据库查询返回前台数据的坑...

    之前本来想用mongodb进行数据库的操作,后来一想自己之前简单的用过mysql,就直接使用了mysql,一下午的时间一直走在nodejs查询数据然后返回给前台的这个过程,怎么说呢,在这个过程遇到了两 ...

  9. greenplum数据导入到mysql,greenplum数据库常用操作

    1. 场景描述 greenplum集群部署好后,软件老王在实际使用过程中碰到一些问题,简单记录下,希望能帮到有需要的朋友. 2 .解决方案 2.1 gpcc监控地址 说明:非常重要,greenplum ...

最新文章

  1. 心系AI的百度,这次能翻身吗?
  2. 用ASP实现隐藏链接方法
  3. python—web页面操作之3种等待方式
  4. {网络编程}和{多线程}应用:基于UDP协议【实现多发送方发送数据到同一个接收者】--练习
  5. php 保护变量,保护PHP中的“包含污染”变量
  6. python 动态_python实现动态创建类的方法分析
  7. 内存溢出与内存泄漏区别
  8. 推荐10个最好的Javascript和CSS库
  9. 修改linux用户时间设置,Linux用户和组的操作(九) 修改用户账号密码时间参数 chage...
  10. python 开闭原则_Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】
  11. iOS中创建动态库及调用方法
  12. BlockingQueue接口分析
  13. 如何在Mac上控制对日历的访问?
  14. 常用HTML转义字符,
  15. R 包的手动打包流程
  16. Python网络爬虫实现音乐下载器和图片下载器功能
  17. 如何微信分享网页链接自定义图片和文字描述?生成微信自定义卡片链接流程(附教程与工具)
  18. 第十九届乐博杯机器人科技嘉年华!圆满落幕!
  19. linux中永久别名 mac,mac 设置 ll 等alias 并永久生效
  20. 2021年山东省安全员B证考试资料及山东省安全员B证试题及解析

热门文章

  1. python二维元组_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
  2. 关于hp惠普笔记本电脑清洗(真的要水洗哟)
  3. 【骚气的动效】无限循环往下往复淡入淡出运动,通常用于向下箭头,提示用户可以往下滚动或者点击展开
  4. 微信小程序开发工具安装、设置
  5. 使用libevent多线程验证Linux上的服务器惊群现象
  6. 字符串匹配数据结构 --Trie树 高效实现搜索词提示 / IDE自动补全
  7. easyui 报表合并单元格
  8. oracle根据一张表更新另外一张表
  9. 创业笔记-Node.js入门之阻塞与非阻塞
  10. openGL学习笔记(1)——常用方法原型解释