在日常的工作中,MySQL和SQLServer是经常使用到的两种数据库,直接连接使用的话是很简单的,如果说需要基于pyspark做连接工具,进行相应的数据查询操作的话就会复杂一点,今天简单的基于pyspark模块实现了连接MySQL数据库,执行给定的查询语句,返回查询结果数据。

接下来简单的说一点自己学习使用pyspark以来的记录学习,具体如下:

pyspark顾名思义就是由python和spark组合使用的。Spark提供了一个Python_Shell,即pyspark,从而可以以交互的方式使用Python编写Spark程序。有关Spark的基本架构以及pyspark环境配置相关的内容本篇博客就不再多加阐述了,网络上也有很多不错的讲解。

pyspark里最核心的模块是SparkContext(简称sc),最重要的数据载体是RDD。RDD就像一个NumPy array或者一个Pandas Series,可以视作一个有序的item集合。只不过这些item并不存在driver端的内存里,而是被分割成很多个partitions,每个partition的数据存在集群的executor的内存中。parkSession是Spark 2.0引入的新概念。SparkSession为用户提供了统一的切入点,来让用户学习spark的各项功能。 在spark的早期版本中,SparkContext是spark的主要切入点,由于RDD是主要的API,我们通过sparkcontext来创建和操作RDD。对于每个其他的API,我们需要使用不同的context。例如,对于Streming,我们需要使用StreamingContext;对于sql,使用sqlContext;对于hive,使用hiveContext。但是随着DataSet和DataFrame的API逐渐成为标准的API,就需要为他们建立接入点。所以在spark2.0中,引入SparkSession作为DataSet和DataFrame API的切入点。SparkSession实质上是SQLContext和HiveContext的组合(未来可能还会加上StreamingContext),所以在SQLContext和HiveContext上可用的API在SparkSession上同样是可以使用的。SparkSession内部封装了SparkContext,所以计算实际上是由SparkContext完成的。

接下来回归正题,基于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.columnsprint '=========================================================='print all_columnsres_list=df.collect()print '=========================================================='print type(res_list)print '=========================================================='result=splitRowData(all_columns,res_list)for one in result[:10]:print onesc.stop()return result

简单实践如下:

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

结果如下:

简单的小工具!

pyspark连接MySQL数据库,执行SQL语句,返回数据查询结果相关推荐

  1. Python连接MySQL数据库执行sql语句时的参数问题

    由于工作需要,今天写了一个Python小脚本,其中需要连接MySQL数据库,在执行sql命令时需要传递参数,结果出问题了.在网上查了一下,发现有以下几种方式传递参数: 一.直接把sql查询语句完整写入 ...

  2. python调用mysql数据库sql语句过长有问题吗_Python 连接Mysql数据库执行sql语句

    #-*- coding: utf-8 -*- ''' ====================================================================== 描述 ...

  3. php 登陆 sql语句,PHP 连接MySQL数据库的SQL语句的简单示例

    这篇文章主要为大家详细介绍了PHP 连接MySQL数据库的SQL语句的简单示例,具有一定的参考价值,可以用来参考一下. 首先用phpmyadmin进入建立数据库user 再建个三段的表admin 再别 ...

  4. DBeaver连接mysql数据库执行.sql脚本,Windows

    DBeaver连接mysql数据库执行.sql脚本,Windows操作系统 (1)首先需要DBeaver连接mysql成功. 启动mysql, mysqld --console 打开DBeaver连接 ...

  5. JavaWeb学习笔记(数据库、SQL语句、数据查询语法、完整性约束、编码、备份和恢复数据、多表查询)

    数据库.SQL语句.数据查询语法.完整性约束.编码.备份和恢复数据.多表查询 JavaWeb学习笔记 数据库 数据库概念 基本命令 启动和关闭mysql服务器 客户端登录退出mysql SQL语句 S ...

  6. Python3.x连接MySQL数据库,SQL语句使用方法

    Python3.x连接MySQL数据库 使用的Python包 连接MySQL数据库使用的包为pymysql 使用pip导入此包,在cmd下输入一下语句: pip install pymysql 打开数 ...

  7. Java 技术篇 - java同时连接多种数据库执行sql语句的兼容性验证,数据库类型包括:oracle、sqlserver、DB2、人大金仓、达梦、PG、瀚高、polardb

    Java 操作多类型数据库下的兼容性验证 第一章:数据库测试 ①[ oracle 数据库不支持分号]ORA-00933: SQL 命令未正确结束 ② [sqlserver 数据库不支持 commit] ...

  8. Asp.Net访问Oracle 数据库 执行SQL语句和调用存储过程

    Web服务器的配置: 1.安装Oracle 客户端 参考 Oracle 9i & PLSQL 全简体中文版数据库安装过程(图解),在选择安装的时候仅安装客户端即可 2.为安装客户端的服务器配置 ...

  9. Python中Mysql数据库的sql语句参数传递问题

    在Python中, 通过pymysql库连接Mysql数据库的sql语句参数传递时需要注意: mysql的sql语句的字符串格式化不是标准的python的字符串格式化, 在python中无论字符串,数 ...

  10. MySQL数据库:SQL语句

    MySql数据库系列阅读 MySQL数据库 MySQL数据库:SQL语句 MySQL数据库:完整性约束 MySQL数据库备份与还原 MySQL数据库:编码 1. SQL概述 1.1 什么是SQL SQ ...

最新文章

  1. HDU 4418 高斯消元法求概率DP
  2. C++ Primer 5th笔记(8)chapter8 类:IO库-流的缓冲区
  3. 中国大学MOOC 计算机组成原理第4章 测试(下)
  4. Kafka本身的架构
  5. python修改y轴刻度_Python | Y轴刻度限制
  6. Java实现pow共识算法_POW+POS混合共识算法
  7. OpenCV4每日一练day4:Mat类的创建、赋值、读取
  8. Checkbox与RadioGroup的使用方法
  9. C# ITextSharp pdf 自动打印
  10. Netty使用kryo序列化传输对象
  11. Error: Cannot find module ‘webpack-cli/bin/config-yargs‘ 解决办法
  12. Valine-1.4.4新版本尝鲜+个性制定(表情包、qq头像、UI样式)
  13. 淘宝客APP带自营商城本地生活CPS外卖优惠电影票话费更新渠道跟单生活特权V3
  14. 企业竞争情报系统的业务模式深入分析
  15. 几个系统级崩溃问题和h5加载页面崩溃问题及解决方案
  16. 川农计算机分数线,2016四川农业大学录取分数线(附15年调档线)
  17. 马斯克、李彦宏、姚期智等云端纵论AI,他们都说了什么?
  18. 使用谷歌浏览器模拟发送http请求
  19. android手机功耗优化,安卓统一推送实测:待机功耗降30%
  20. 易语言取php网页数据,易语言爬取网页内容方法

热门文章

  1. python设计模式-模板方法模式 1
  2. JAVA NIO编程入门(一)
  3. memcached群集
  4. 《深入理解Android:卷III A》一一2.2Java层中的Binder分析
  5. 堆叠顺序的误区和z-index
  6. HTML inline 与block元素
  7. Humidex--POJ 3299
  8. python_文件处理模式
  9. MySQL数据库权限操作指南
  10. 科学技术的不完备性及其实践意义