Python进阶编程 --- 2.MySQL、pymysql、PySpark

文章目录

    • 第一章:SQL基础入门
      • 1.1 数据库
        • 数据库如何存储数据
      • 1.2 数据库和SQL的关系
      • 1.3 MySQL版本
      • 1.4 命令提示符内使用MySQL
      • 1.5 SQL概述
        • 1.5.1 SQL语言分类
        • 1.5.2 SQL语言特性
      • 1.6 DDL
          • 库管理
          • 表管理
      • 1.7 DML - 数据操作
      • 1.8 DQL - 查询和计算数据
        • 1.8.1 基础数据查询
        • 1.8.2基础数据查询 - 过滤
        • 1.8.3 分组聚合
        • 1.8.4 结果排序
        • 1.8.5 结果分页限制
      • 1.9 Python - MySQL
        • 1.9.1 pymysql
        • 1.9.2 数据插入
    • 第二章:PySpark基础入门
      • 2.1 PySpark库的安装
      • 2.2 PySpark编程步骤
      • 2.3 PySpark编程模型
      • 2.4 数据输入
        • 2.4.1 RDD对象
        • 2.4.2 Python数据容器转RDD对象
        • 2.4.3 读取文件转RDD对象
      • 2.5 数据计算
        • 2.5.1 map方法

第一章:SQL基础入门

1.1 数据库

在这里插入图片描述

数据库如何存储数据

在这里插入图片描述

1.2 数据库和SQL的关系

数据库用来存储数据,在该过程中,将会涉及:

  • 新增数据

  • 删除数据

  • 修改数据

  • 查询数据

  • 数据库、数据表的管理

SQL语言是一种对数据库、数据进行操作、管理、查询的工具。

1.3 MySQL版本

  • 社区版(免费)

  • 集群版(免费)

  • 商业版(收费)

  • 高级集群版(收费)

1.4 命令提示符内使用MySQL

打开命令提示符程序,输入:mysql -uroot -p,回车输入密码,即可进入命令行环境

  • show database; //查看有哪些数据库

  • use 数据库名 //使用某个数据库

  • show tables //查看数据库内有哪些表

  • exit //退出MySQL的命令行环境

1.5 SQL概述

SQL:结构化查询语言,用于访问和处理数据库的标准的计算机语言

1.5.1 SQL语言分类
  • 数据定义:DDL

     库的创建删除、表的删除创建等
    
  • 数据操纵:DML

      新增数据、删除数据、修改数据等
    
  • 数据控制:DCL

      新增用户、删除用户、密码修改、权限管理等
    
  • 数据查询:DQL

      基于需求查询和计算数据
    
1.5.2 SQL语言特性
  • 大小写不敏感

  • 可单行或多行书写,;号结束

  • 支持注释
    单行注释: – 注释内容(–后面要有一个空格)
    单行注释:# 注释内容

    多行注释:/* 注释内容 */
    

1.6 DDL

库管理
  • 查看数据库:SHOW DATATBASES;

  • USE 数据库名;

  • CREATE DATABASE 数据库名 [CHARSET UTF8];

  • DROP DATABASE 数据库名;

  • SELECT DATABASE();

在这里插入图片描述

表管理
  • 查看表:SHOW TABLES; # 使用前需先选择数据库

  • 删除表:DROP TABLE 表名;

                     DROP TABLE IF EXISTS 表名;
    
  • 创建表:CREATE TABLE 表名(
    列名称 列类型,
    列名称 列类型

    );

    列类型说明
    int整数
    float浮点数
    varchar(长度)文本,长度为数字,为最大长度限制
    date日期
    timestamp时间戳

在这里插入图片描述
在这里插入图片描述

1.7 DML - 数据操作

  • 插入INSERT:INSERT INTO表[(列1,列2,…,列N)] VALUES(值1,值2,…,值N) [,(值1,值2,…,值N),…,(值1,值2,…,值N)];

  • 删除DELETE:DELETE FROM 表名 [WHERE 条件判断];

  • 更新UPDATE:UPDATE 表名 SET 列=值 [WHERE 条件判断];

  • 在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

1.8 DQL - 查询和计算数据

1.8.1 基础数据查询

语法:SELECT 字段列表 |* FROM 表
在这里插入图片描述
在这里插入图片描述

1.8.2基础数据查询 - 过滤

语法:SELECT 字段列表 |* FROM 表 WHERE 条件判断

在这里插入图片描述

1.8.3 分组聚合

语法:SELECT 字段| 聚合函数 FROM 表 [WHERE 条件] GROUP BY 列

聚合函数:

  • SUM(列) 求和

  • AVG(列) 求平均值

  • MIN(列) 求最小值

  • MAX(列) 求最大值

  • COUNT(列|*) 求数量

在这里插入图片描述

1.8.4 结果排序

语法

SELECT 列|聚合函数|* FROM 表

WHERE …

GROUP BY …

ORDER BY … [ASC | DESC]
在这里插入图片描述

1.8.5 结果分页限制

语法

SELECT 列|聚合函数|* FROM 表

WHERE …

GROUP BY …

ORDER BY … [ASC | DESC]

LIMIT n[, m]

在这里插入图片描述

执行顺序:FROM->WHERE->GROUP BY与聚合函数 -> SELECT -> ORDER BY -> LIMIT

1.9 Python - MySQL

1.9.1 pymysql

基础使用

安装:pip install pymysql

创建到MySQL的数据库链接

from pymysql import Connection
# 获取到MySQL数据库的链接对象
conn = Connection(host="localhost",    # 主机名port=3306,           # 端口user="root",         # 账户名password="123456"    # 密码
)print(conn.get_server_info()) # 打印MySQL数据库信息conn.close() # 关闭到数据库的链接

执行SQL语句

from pymysql import Connection
# 获取到MySQL数据库的链接对象
conn = Connection(host="localhost",    # 主机名port=3306,           # 端口user="root",         # 账户名password="123456"    # 密码
)cursor = conn.cursor() # 获取游标对象
conn.select_db("world") # 选择数据库
cursor.execute("select * from student") # 用游标对象,执行SQL语句
results: tuple = cursor.fetchall() # 获取查询结果
for r in results:print(r)
conn.close() # 关闭到数据库的链接
1.9.2 数据插入

commit提交

pymysql在执行数据插入或其他产生数据更改的SQL语句时,默认是需要提交更改的,通过代码确认该更改行为

链接对象.commit()即可确认此行为

from pymysql import Connection
# 获取到MySQL数据库的链接对象
conn = Connection(host="localhost",    # 主机名port=3306,           # 端口user="root",         # 账户名password="123456"    # 密码
)cursor = conn.cursor() # 获取游标对象
conn.select_db("world") # 选择数据库
cursor.execute("insert into student values(7, '小东', 20)") # 用游标对象,执行SQL语句
conn.commit() # 确认
conn.close() # 关闭到数据库的链接

自动commit

conn = Connection(host="localhost",    # 主机名port=3306,           # 端口user="root",         # 账户名password="123456",   # 密码autocommit= True     # 设置自动提交  
)

第二章:PySpark基础入门

Spark:Apache Spark是用于大规模数据处理的同一分析引擎。

Spark是一款分布式的计算框架,用于调度成百上千的服务器集群,计算海量数据

PySpark是由Spark官方开发的Python语言第三方库

2.1 PySpark库的安装

安装:pip install pyspark

构建PySpark执行环境入口对象

执行环境入口对象:类 SparkContext的 类对象

from pyspark import SparkConf,SparkContext # 导包conf = SparkConf().setMaster("local[*]").setAppName(("test_spark")) # 创建SparkConf类对象sc = SparkContext(conf=conf) # 基于SparkConf类对象创建SparkContext类对象print(sc.version) # 打印PySpark的运行版本sc.stop() # 停止SparkContext对象的运行

SparkContext类对象,是PySpark编程中一切功能的入口

2.2 PySpark编程步骤

PySpark编程,主要分三大步骤:

  • 数据输入:通过SparkContext类对象的成员方法完成对数据的读取操作,读取后获得RDD类对象

  • 数据处理计算:通过RDD类对象的成员方法,完成各种数据计算的需求

  • 数据输出:将处理完的RDD对象,调用各种成员方法完成写出文件、转换为list等操作

2.3 PySpark编程模型

在这里插入图片描述

  • 通过SparkContext对象完成数据输入

  • 输入数据后得到RDD对象,对RDD对象进行迭代计算

  • 最终通过RDD对象的成员方法完成数据输出

2.4 数据输入

2.4.1 RDD对象

RDD全称为:弹性分布式数据集

PySpark针对数据的处理,都以RDD对象作为载体

  • 数据存储在RDD内

  • 各类数据的计算方法,也都为RDD的成员方法

  • RDD的数据计算方法,返回值依然是RDD对象

2.4.2 Python数据容器转RDD对象

通过SparkContext对象的parallelize成员方法,将list\tuple\set\dict\str转为PySpark的RDD对象

在转换时,需注意字符串会被拆成一个个的字符,存入RDD对象中,字典仅有key会被存入RDD对象中。

from pyspark import SparkConf,SparkContext # 导包
conf = SparkConf().setMaster("local[*]").setAppName(("test_spark")) # 创建SparkConf类对象
sc = SparkContext(conf=conf) # 基于SparkConf类对象创建SparkContext类对象rdd1 = sc.parallelize([1, 2, 3])
rdd2 = sc.parallelize((1, 2, 3))
rdd3 = sc.parallelize("hello")
rdd4 = sc.parallelize({1, 2, 3})
rdd5 = sc.parallelize({"key1":1, "key2": 2})print(rdd1.collect()) # 输出RDD内容
print(rdd2.collect()) # 输出RDD内容
print(rdd3.collect()) # 输出RDD内容
print(rdd4.collect()) # 输出RDD内容
print(rdd5.collect()) # 输出RDD内容sc.stop() # 停止SparkContext对象的运行
2.4.3 读取文件转RDD对象

通过SparkContext入口对象,读取文件,构建出RDD对象

from pyspark import SparkConf,SparkContext # 导包
conf = SparkConf().setMaster("local[*]").setAppName(("test_spark")) # 创建SparkConf类对象
sc = SparkContext(conf=conf) # 基于SparkConf类对象创建SparkContext类对象
rdd = sc.textFile("E:/learn - coding/Python/2024_04_13/hello.txt")
print(rdd.collect())
sc.stop() # 停止SparkContext对象的运行

2.5 数据计算

2.5.1 map方法

PySpark的数据计算,都基于RDD对象进行的,依赖于RDD对象中内置丰富的成员方法(算子)

map算子:将RDD的数据一条条处理,返回新的RDD

语法

rdd.map(func)
# func: f:(T) -> U
# f:表示这是一个函数或方法
# (T) -> U 表示的是方法的定义
# () 表示传入参数,(T)表示传入1个参数,()表示没有传入参数
# T 泛型的代称,在这表示任意类型
# U 泛型的代称,在这表示任意类型
# -> U 表示返回值
# (T) -> U 表示这是个方法,该方法接受一个参数传入,传入参数类型不限,返回一个返回值,返回值类型不限
# (A) -> A 表示这是个方法,该方法接受一个参数传入,传入参数类型不限,返回一个返回值,返回值类型和传入参数类型一致

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/819381.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HDFS Lease详解

本文主要介绍hdfs lease的设计以及实现。 写在前面 https://www.cnblogs.com/jhcelue/p/6783076.html https://blog.csdn.net/yexiguafu/article/details/118890014 https://www.jianshu.com/p/33e1a5a2b876 https://blog.csdn.net/breakout_alex/article/details/1014569…

行业模板|DataEase批发零售大屏模板推荐

DataEase开源数据可视化分析平台于2022年6月发布模板市场(https://templates-de.fit2cloud.com),并于2024年1月新增适用于DataEase v2版本的模板分类。模板市场旨在为DataEase用户提供专业、美观、拿来即用的大屏模板,方便用户根据…

【Canvas与艺术】绘制斜置黄色三角biohazard标志

【关键点】 径向渐变色和文字按角度偏转。 【成果图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>使用Html5/Canvas绘制…

spring-cloud微服务gateway

核心部分&#xff1a;routes(路由)&#xff0c; predicates(断言)&#xff0c;filters(过滤器) id&#xff1a;可以理解为是这组配置的一个id值&#xff0c;请保证他的唯一的&#xff0c;可以设置为和服务名一致 uri&#xff1a;可以理解为是通过条件匹配之后需要路由到&…

2024 CKA 基础操作教程(十二)

题目内容 考点相关内容分析 Pods Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。 Pod 是 Kubernetes 中的原子单元&#xff0c;用于封装应用程序的一个或多个容器、存储资源、唯一的网络 IP&#xff0c;以及有关如何运行容器的选项。Pod 提供了一个共享的…

一些实用的工具网站

200 css渐变底色 https://webgradients.com/ 200动画效果复制 https://css-loaders.com/classic/ 二次贝塞尔曲线 https://blogs.sitepointstatic.com/examples/tech/canvas-curves/bezier-curve.html 三次贝塞尔曲线 https://blogs.sitepointstatic.com/examples/tech/c…

Day92:系统攻防-WindowsLinux远程探针本地自检任意执行权限提升入口点

目录 操作系统-远程漏扫-Nessus&Nexpose&Goby Nessus Nexpose 知识点&#xff1a; 1、远程漏扫-Nessus&Nexpose&Goby 2、本地漏扫-Wesng&Tiquan&Suggester 3、利用场景-远程利用&本地利用&利用条件 操作系统-远程漏扫-Nessus&Nexpose&a…

Python——详细解析目标检测xml格式标注转换为txt格式

本文简述了目标检测xml格式标注的内容&#xff0c;以及yolo系列模型所需的txt格式标注的内容。并提供了一个简单的&#xff0c;可以将xml格式标注文件转换为txt格式标注文件的python脚本。 1. xml格式文件内容 <size>标签下为图片信息&#xff0c;包括 <width> …

​​​​​​​iOS配置隐私清单文件App Privacy Configuration

推送到TestFlight后邮件收到警告信息如下&#xff0c;主要关于新的隐私政策需要补充&#xff1a; Hello, We noticed one or more issues with a recent submission for TestFlight review for the following app: AABBCC Version 10.10.10 Build 10 Although submission for …

servlet的三个重要的类(httpServlet 、httpServletRequst、 httpServletResponse)

一、httpServlet 写一个servlet代码一般都是要继承httpServlet 这个类&#xff0c;然后重写里面的方法 但是它有一个特点&#xff0c;根据之前写的代码&#xff0c;我们发现好像没有写main方法也能正常执行。 原因是&#xff1a;这个代码不是直接运行的&#xff0c;而是放到…

文章解读与仿真程序复现思路——中国电机工程学报EI\CSCD\北大核心《应用图论建模输电网的电力现货市场出清模型》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

JavaSE图书管理系统实战

代码仓库地址&#xff1a;Java图书管理系统 1.前言 该项目将JavaSE的封装继承多态三大特性&#xff0c;使用了大量面向对象的操作&#xff0c;有利于巩固理解 &#xff08;1&#xff09;实现效果 2.实现步骤 第一步先把框架搭建起来&#xff0c;即创建出人&#xff1a;管理员和…

RocketMQ 02 功能大纲介绍

RocketMQ 02 主流的MQ有很多&#xff0c;比如ActiveMQ、RabbitMQ、RocketMQ、Kafka、ZeroMQ等。 之前阿里巴巴也是使用ActiveMQ&#xff0c;随着业务发展&#xff0c;ActiveMQ IO 模块出现瓶颈&#xff0c;后来阿里巴巴 通过一系列优化但是还是不能很好的解决&#xff0c;之后…

MySQL底层架构

MySQL底层架构 连接器 验证客户端连接的用户名密码、校验权限、维持和管理连接。 客户端如果超过 wailt_timeout 没有动静&#xff0c;连接器会主动将它断开&#xff0c;此时客户端再次发送请求的话&#xff0c;就会收到错误&#xff1a;lost connection to MySQL server dur…

【Modelsim】保持波形格式重编译and波形的保存与查看

文章目录 保持原波形格式重编译波形的保持与查看保存波形打开工程查看波形 保持原波形格式重编译 Modelsim 仿真设置好波形格式后&#xff0c;若需要修改代码并保持原波形格式重新查看波形&#xff0c;只需将文件重新编译后仿真即可。 1.修改代码后Project页面的代码状态变成…

外网如何访问内网数据库?

在当今信息时代&#xff0c;随着互联网的快速发展&#xff0c;很多企业和个人都面临着外网访问内网数据库的需求。外网访问内网数据库可以实现远程操作&#xff0c;方便用户在任何地点使用移动设备进行数据管理和查询。本文将介绍一种名为【天联】的组网产品&#xff0c;它是一…

SkyWalking 为所有的API接口增加 tag

背景胡扯 线上接口报错&#xff0c;接着被 SkyWalking 抓到&#xff0c;然后 SkyWalking 触发告警&#xff0c;最后老板你&#xff0c;让你辛苦一下&#xff0c;在明早上班前把这个bug 改了&#xff0c;并告诉你你是全公司的希望。谁说不是呢&#xff1f;为公司业务保驾护航&a…

C语言 | 自定义类型:struct结构体(详解)

目录&#xff1a; --前言 1. 结构体类型的定义与基础结构 2. 结构体的使用 3. typedef相关 4. 结构体的自引用 5. 结构体内存对齐 6. 结构体传参 7. 结构体实现位段 --前言&#xff1a; c语言中内置类型&#xff0c;也有自定义的类型。 例如&#xff1a;内置类型 in…

windows应急响应基础知识

一、系统排查 1、系统详细信息 systeminfo2、网络链接 netstat -ano LISTENING 服务启动后首先处于侦听 ESTABLISHED 建立连接。表示两台机器正在通信。 CLOSE_WAIT 对方主动关闭连接或者网络异常导致连接中断&#xff0c;这时我方的状态会变成CLOSE_WAIT 此时我方要调用…

【计算机考研】408网课汇总+资源分享

408王道的视频就比较通俗易懂 王道的教材非常契合408的大纲&#xff0c;是专门为408大纲而编写的&#xff0c;而教材是方方面面都讲解的透彻。 建议王道为主&#xff0c;网络搜索为辅&#xff01; 王道中讲解不清楚&#xff0c;看不懂的知识点&#xff0c;可以尝试在网络上进…