- 博客(55)
- 收藏
- 关注
原创 Spark实现WorldCount执行流程图
摘要:Spark支持分区并行处理,通过将数据分片实现任务并行化。同时,其基于内存计算的特性可高效完成迭代运算,避免了传统磁盘I/O瓶颈,显著提升机器学习等迭代算法的性能。这种内存并行机制使Spark兼具高效的数据处理能力和快速迭代能力。
2025-07-23 16:23:23
202
原创 hive的相关的优化
本文介绍了Hive的函数使用和优化策略。主要内容包括:1)常用函数如IF、NVL、COALESCE等逻辑判断和空值处理函数;2)并行优化方案,包括并行编译和执行配置;3)小文件合并机制及参数设置;4)矢量化查询和零拷贝读取优化;5)数据倾斜解决方案,针对GROUP BY和JOIN操作提出combiner、负载均衡等优化方法;6)关联优化器和UNION ALL优化。文章还提供了常用优化参数的配置建议,如并行执行、矢量化查询等常开项,以及针对数据倾斜的特定优化配置。
2025-07-14 14:37:19
890
2
原创 hive的索引
Hive索引在分区和分桶优化基础上提供额外查询加速手段。主要包括三种索引类型:原始索引(已废弃)、行组索引和布隆过滤索引。行组索引要求ORC存储格式,需对字段排序并开启'orc.create.index'='true',适用于数值范围查询。布隆过滤索引用于等值查询,需指定'orc.bloom.filter.columns'字段。两者可结合使用,通过SET hive.optimize.index.filter=true启用自动索引优化。
2025-07-12 16:41:59
868
原创 分桶表的介绍和作用
分桶表通过哈希分桶方式将数据分散存储,与分区表相比具有更细粒度的数据管理能力。主要作用包括:(1)数据采样,使用tablesample函数按比例抽取特定桶数据;(2)提升查询效率,单表查询时快速定位桶,多表连接时通过分桶优化join操作。针对不同表大小组合提供多种优化方案:小表用map join,中型表用bucket map join,大表间使用SMB map join(需满足分桶数相同、join列排序等条件)。分桶表构建需先创建临时表导入数据,再通过insert导入分桶表,不支持直接load data导入
2025-07-10 21:28:31
566
2
原创 hive创建表注释comment的中文乱码解决方案
Hive中文注释乱码问题通常由MySQL元数据库编码不匹配导致,默认latin1编码会使中文显示为问号。解决方法:先登录MySQL,修改Hive库中相关表字段编码为UTF8,包括COLUMNS_V2、TABLE_PARAMS等表的注释字段。执行ALTER TABLE语句变更编码后,需删除原表并重建即可解决乱码问题。关键是将所有存储注释的字段编码统一改为utf8,确保中文字符正常存储和显示。
2025-06-26 15:51:32
520
原创 MySQL的pymysql操作
摘要:本章完成MySQL学习,进入Hadoop准备阶段。主要内容包括:1)使用PyCharm操作MySQL前需安装pymysql库;2)强调增删改操作后必须提交(commit)才能保存数据;3)提供完整示例代码,含数据库创建、学生表建表及CRUD操作演示(查询宋江等数据,新增晁盖、修改为李逵后删除)。代码展示Python连接MySQL的完整流程,包含连接建立、游标使用和资源释放。注意在数据修改操作后必须执行conn.commit()。
2025-06-09 12:19:54
908
3
原创 MySQL的优化
本文详细介绍了MySQL的优化技术,主要包括SQL语句执行频率分析、慢查询定位、执行计划解析(explain)、性能剖析(show profile)、索引优化原则等核心内容。通过大量实例代码演示了如何查看SQL执行统计信息、开启慢查询日志、分析EXPLAIN结果中的id/select_type/type等关键指标,以及使用复合索引时的最左前缀法则、索引失效场景等优化技巧。同时还涉及大量数据导入优化、ORDER BY排序优化、LIMIT分页优化等实用方法,并提供了完整的SQL优化代码示例。
2025-06-09 01:09:04
824
5
原创 MySQL的日志
摘要:MySQL提供了多种日志功能,包括错误日志、二进制日志(binlog)、查询日志和慢查询日志。二进制日志默认不开启,记录数据库变更;查询日志记录所有操作语句;慢查询日志记录超时SQL语句。可通过命令查看和操作日志,如开启/关闭日志功能、查看日志内容等。常用命令包括查看日志状态(show variables)、显示日志内容(show binlog events)、清空日志(reset master)等。这些日志功能对数据库监控和性能优化具有重要意义,如排查错误、分析慢查询等。
2025-06-08 14:27:10
526
原创 MySQL的锁机制
本文介绍了MySQL中MyISAM和InnoDB存储引擎的锁机制。MyISAM只支持表锁,包括读锁(允许多事务同时读取)和写锁(独占写入权限),存在读读不互斥、读写互斥、写写互斥的特性。InnoDB支持行级锁和表锁,提供共享锁(允许多事务读取)和排他锁(独占读写权限),并自动为写操作加排他锁。文章还通过实例演示了锁表操作可能因autocommit设置导致的卡顿问题及解决方法。
2025-05-26 14:00:00
519
原创 MySQL的事务
摘要:本文介绍了MySQL中InnoDB存储引擎的事务特性。事务用于确保多条SQL语句要么全部执行成功,要么全部不执行(如转账操作)。基本操作包括手动提交/回滚事务,默认情况下MySQL自动提交单条SQL。事务具有四大特性:原子性、一致性、隔离性和持久性。文章还讲解了不同隔离级别及其特点(脏读、不可重复读、幻读),并提供了创建账户表和模拟转账事务的完整代码示例,演示了如何通过begin/commit/rollback控制事务执行。最高隔离级别serializable安全性高但效率低。
2025-05-26 08:00:00
577
原创 MySQL的存储引擎
摘要:MySQL存储引擎决定数据如何存储和组织,不同引擎各有特点。InnoDB是常用默认引擎,MyISAM读写效率较高。操作包括查看表引擎(SHOW ENGINES)、创建/修改表时指定引擎(CREATE TABLE...ENGINE=、ALTER TABLE...ENGINE=),以及通过SHOW CREATE TABLE查看引擎信息。完整代码演示了从查看默认引擎到创建修改表引擎的全过程。
2025-05-25 15:41:18
407
2
原创 python正则表达式和递归
学习目标:了解什么是正则表达式,掌握re模块的基础使用,掌握正则表达式的各类元字符规则,了解字符串的r标记的作用,掌握什么是递归,掌握递归案例的开发。
2024-11-13 23:26:55
1087
原创 python多线程和网络编程
学习目标:了解什么是进程、线程,了解什么是并行执行,掌握使用threading模块完成多线程编程,了解什么是Socket网络编程,基于Socket完成服务端程序开发,基于Socket完成客户端程序开发。
2024-11-12 22:11:35
1189
原创 python 闭包和装饰器的讲解
一。闭包学习目标:掌握闭包的用途和用法,掌握nonlocal关键字的作用二、装饰器学习目标:掌握装饰器的作用和用法
2024-11-11 23:13:29
948
原创 用python证明是否是回文数(三种方法)
解析:回文数是指正序和倒序的结果都是同一个数,通过这几天的学习我们已经掌握了数据容器的切片操作,只需要对数转化成字符串然后进行倒序切片,判断倒序的结果和正序的结果是否一致,一致就是回文数,不一致就不是回文数。直接判断正序倒序结果是否相等,相等的话就输出True,不相等就输出False。
2024-11-05 21:51:16
3269
原创 pyspark入门基础详细讲解
学习目标:掌握pyspark库的安装,掌握pyspark执行环境入口对象的构建,理解pyspark的编程模型。建议使用国内代理镜像网站下载更快。
2024-11-05 20:48:25
1456
1
原创 python操作MySQL以及SQL综合案例
学习目标:掌握python执行SQL语句插入数据到MySQL学习目标:使用SQL语句和pymysql库完成综合案例的开发构建表print输出演示一下。完整代码演示使用for循环,每循环一次,导入一次数据。导入完数据后,使用f5刷新就能看到数据。
2024-11-04 23:17:35
987
原创 SQL入门的基础知识
学习SQL的原因:后面的实战案例需要用SQL,SQL是开发人员的必备技能现在只需要学到满足后续案例需要,即简单增删改查,做一个入门即可学习目标:理解数据库的作用,了解常用的数据库软件数据库就是存储数据的库三种层级关系:库,表,数据这些软件都能实现:管理库、管理表、基于表来管理数据就相当于我们的数据库是一片农田,在农田里面可以滋养我们的数据,那么sql就相当于是我们的农具,比如说锄头它是工具,可以帮助我们更好的晚餐农田的管理一样
2024-11-04 20:05:48
990
原创 面向对象(上)
私有成员我们的类对象是无法直接使用的,但是它内部的其他成员,却是可以使用的,通俗一点:私有的只可以让我们内部自己使用,到了外部类对象那里,你是没有办法去访问的。封装表示的是,将现实世界事物的:属性,行为,封装到类中,描述为:成员变量,成员方法,从而完成程序对现实世界事物的描述。就比如手机中,也存在对用户开放的属性和行为,以及对用户隐藏的属性和行为,像这些对用户隐藏的,我们用户是无法使用的。学习目标:掌握类的定义和使用语法,掌握成员方法的使用,掌握self关键字的作用。
2024-10-27 18:37:54
1039
1
原创 python基础综合案例(数据可视化-动态柱状图)
通过Bar()构建一个柱状图对象·和折线图一样,通过add_xaxis()和add_yaxis()添加x和y轴数据·通过柱状图对象的:reversal_axis(),反转x和y轴·通过label_opts=LabelOpts(position="right")设置数值标签在右侧显示。
2024-10-24 23:58:11
1396
1
拉链表的详细实现流程图
2025-07-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人