pyspark连接MySQL数据库,执行SQL语句,返回数据查询结果
在日常的工作中,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语句,返回数据查询结果相关推荐
- Python连接MySQL数据库执行sql语句时的参数问题
由于工作需要,今天写了一个Python小脚本,其中需要连接MySQL数据库,在执行sql命令时需要传递参数,结果出问题了.在网上查了一下,发现有以下几种方式传递参数: 一.直接把sql查询语句完整写入 ...
- python调用mysql数据库sql语句过长有问题吗_Python 连接Mysql数据库执行sql语句
#-*- coding: utf-8 -*- ''' ====================================================================== 描述 ...
- php 登陆 sql语句,PHP 连接MySQL数据库的SQL语句的简单示例
这篇文章主要为大家详细介绍了PHP 连接MySQL数据库的SQL语句的简单示例,具有一定的参考价值,可以用来参考一下. 首先用phpmyadmin进入建立数据库user 再建个三段的表admin 再别 ...
- DBeaver连接mysql数据库执行.sql脚本,Windows
DBeaver连接mysql数据库执行.sql脚本,Windows操作系统 (1)首先需要DBeaver连接mysql成功. 启动mysql, mysqld --console 打开DBeaver连接 ...
- JavaWeb学习笔记(数据库、SQL语句、数据查询语法、完整性约束、编码、备份和恢复数据、多表查询)
数据库.SQL语句.数据查询语法.完整性约束.编码.备份和恢复数据.多表查询 JavaWeb学习笔记 数据库 数据库概念 基本命令 启动和关闭mysql服务器 客户端登录退出mysql SQL语句 S ...
- Python3.x连接MySQL数据库,SQL语句使用方法
Python3.x连接MySQL数据库 使用的Python包 连接MySQL数据库使用的包为pymysql 使用pip导入此包,在cmd下输入一下语句: pip install pymysql 打开数 ...
- Java 技术篇 - java同时连接多种数据库执行sql语句的兼容性验证,数据库类型包括:oracle、sqlserver、DB2、人大金仓、达梦、PG、瀚高、polardb
Java 操作多类型数据库下的兼容性验证 第一章:数据库测试 ①[ oracle 数据库不支持分号]ORA-00933: SQL 命令未正确结束 ② [sqlserver 数据库不支持 commit] ...
- Asp.Net访问Oracle 数据库 执行SQL语句和调用存储过程
Web服务器的配置: 1.安装Oracle 客户端 参考 Oracle 9i & PLSQL 全简体中文版数据库安装过程(图解),在选择安装的时候仅安装客户端即可 2.为安装客户端的服务器配置 ...
- Python中Mysql数据库的sql语句参数传递问题
在Python中, 通过pymysql库连接Mysql数据库的sql语句参数传递时需要注意: mysql的sql语句的字符串格式化不是标准的python的字符串格式化, 在python中无论字符串,数 ...
- MySQL数据库:SQL语句
MySql数据库系列阅读 MySQL数据库 MySQL数据库:SQL语句 MySQL数据库:完整性约束 MySQL数据库备份与还原 MySQL数据库:编码 1. SQL概述 1.1 什么是SQL SQ ...
最新文章
- HDU 4418 高斯消元法求概率DP
- C++ Primer 5th笔记(8)chapter8 类:IO库-流的缓冲区
- 中国大学MOOC 计算机组成原理第4章 测试(下)
- Kafka本身的架构
- python修改y轴刻度_Python | Y轴刻度限制
- Java实现pow共识算法_POW+POS混合共识算法
- OpenCV4每日一练day4:Mat类的创建、赋值、读取
- Checkbox与RadioGroup的使用方法
- C# ITextSharp pdf 自动打印
- Netty使用kryo序列化传输对象
- Error: Cannot find module ‘webpack-cli/bin/config-yargs‘ 解决办法
- Valine-1.4.4新版本尝鲜+个性制定(表情包、qq头像、UI样式)
- 淘宝客APP带自营商城本地生活CPS外卖优惠电影票话费更新渠道跟单生活特权V3
- 企业竞争情报系统的业务模式深入分析
- 几个系统级崩溃问题和h5加载页面崩溃问题及解决方案
- 川农计算机分数线,2016四川农业大学录取分数线(附15年调档线)
- 马斯克、李彦宏、姚期智等云端纵论AI,他们都说了什么?
- 使用谷歌浏览器模拟发送http请求
- android手机功耗优化,安卓统一推送实测:待机功耗降30%
- 易语言取php网页数据,易语言爬取网页内容方法