自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(161)
  • 收藏
  • 关注

原创 19.Python实战:实现对博客文章的点赞系统

一个基于Flask的简单博客系统,具有文章展示和点赞功能。系统使用MySQL存储数据,支持文章展示、点赞/取消点赞等功能。

2025-02-15 23:30:00 1116

原创 18.Python实战:实现年会抽奖系统

python实战之使用Flask实现年会抽奖系统

2025-02-15 23:00:00 740

原创 17.Python实战:Python自动获取网页文章

Python自动爬取网页文章内容并按照标题保存到文件中

2025-02-14 00:30:00 441

原创 16.Python正则表达:表示字符、表示数量、原始字符串、表示边界、匹配分组

表示字符:如 \d(数字)、\w(字母数字下划线)、\s(空白字符)等。表示数量:量词如 *(零次或多次)、+(一次或多次)、{n,m}(n至m次)等。原始字符串:使用 r'' 来表示原始字符串,避免反斜杠转义问题。表示边界:使用 ^(字符串开始)、$(字符串结束)、\b(单词边界)等来定义匹配位置。匹配分组:通过括号 () 创建分组,提取匹配的子串,可以使用反向引用。

2025-02-14 00:15:00 470

原创 15.Python网络编程:进程池、进程间通信、多线程、进程和线程区别、网络通信、端口、IP地址、socket、UDP、TCP、http

进程池:multiprocessing.Pool 用于管理和复用多个进程,适合并行计算。进程间通信:通过 Queue 或 Pipe 进行数据交换。多线程:通过 threading 模块实现多线程编程,适用于 I/O 密集型任务。进程与线程区别:进程有独立的内存空间,线程共享内存,进程适合 CPU 密集型任务,线程适合 I/O 密集型任务。网络通信:通过 socket 实现客户端和服务器通信,支持 TCP、UDP、HTTP 协议。TCP:面向连接的协议,保证数据传输的可靠性。UDP:无连接协议,适

2025-02-13 23:30:00 1707

原创 14.Python生成器、迭代器、闭包、装饰器、元类、垃圾回收、内建函数

生成器:使用 yield 返回一个惰性计算的迭代器,节省内存。迭代器:实现了 __iter__ 和 __next__ 方法的对象,支持遍历。闭包:函数可以记住并访问其定义时的外部变量。装饰器:用于动态修改函数或方法行为的函数。元类:用于创建类的类,可以修改类的创建过程。垃圾回收:Python 使用自动垃圾回收机制管理内存,用户无需手动管理对象的内存。内建函数:Python 提供了多种内建函数来处理常见的任务,如计算长度、排序、映射等。

2025-02-13 22:30:00 529

原创 13.Python深拷贝、浅拷贝、私有化:深拷贝案例、浅拷贝案例、进制、位运算、作用域、私有化、属性property

深拷贝与浅拷贝:浅拷贝只复制对象本身,深拷贝会复制所有嵌套对象。进制与位运算:Python 支持多种进制表示法和位运算操作,可以直接对整数的二进制位进行操作。作用域:Python 中的作用域遵循 LEGB 规则。私有化:通过命名约定(__)实现属性和方法的私有化,子类无法访问父类的私有成员。property 装饰器:property 可以让方法看起来像属性,从而实现对属性访问的控制。

2025-02-12 22:45:00 1315

原创 12.Python模块:模块中的__all__、模块制作、打包模块、模块安装与使用

__all__: 控制在 `from module import *` 中导入哪些对象。模块制作: 创建一个 `.py` 文件并在其中编写代码,即可创建一个模块。模块打包: 使用 `setup.py` 和 `setuptools` 来打包模块并进行分发。模块安装与使用: 使用 `pip` 安装第三方模块,或者安装自定义模块并将其导入到程序中。

2025-02-11 23:30:00 908

原创 11.Python异常:捕获异常、异常的传递

捕获异常:使用 `try...except` 语句来捕获异常,`except` 块用于处理捕获到的异常。异常的传递:当一个异常没有被当前函数捕获时,它会向调用堆栈中上层的函数传递,直到捕获到该异常。异常链:使用 `raise ... from` 可以在抛出新异常时保留原始异常信息,帮助跟踪错误发生的根本原因。抛出异常:使用 `raise` 可以显式地抛出异常,并且可以在适当的时机传递异常信息给调用方。

2025-02-11 23:00:00 342

原创 10.Python面向对象(设计模式):单例模式、工厂模式、__new__方法

单例模式:通过 __new__`确保类只有一个实例,适用于全局共享资源。工厂模式:通过工厂方法创建对象,解耦客户端代码和对象创建过程,适用于多个不同类型对象的创建。__new__ 方法:用于控制对象的创建过程,通常与单例模式一起使用,负责返回类的唯一实例。

2025-02-10 00:30:00 434

原创 9.Python面向对象(封装、继承、多态):封装、私有方法、私有属性、__del__()方法、继承、多继承、多态、类属性、实例属性、静态方法和类方法

Python面向对象(封装、继承、多态):封装、私有方法、私有属性、__del__()方法、继承、多继承、多态、类属性、实例属性、静态方法和类方法

2025-02-10 00:15:00 396

原创 8.Python 面向对象(类和对象):定义类、类的构成、类的__init__()方法、创建对象、理解self

Python 面向对象(类和对象):定义类、类的构成、类的__init__()方法、创建对象、理解self

2025-02-09 23:30:00 592

原创 7.Python文件操作:文件的打开与关闭、文件的读写、文件读写应用

Python文件操作:文件的打开与关闭、文件的读写、文件读写应用

2025-02-09 23:00:00 1377

原创 6.Python函数:函数定义、函数的类型、函数参数、函数返回值、函数嵌套、局部变量、全局变量、递归函数、匿名函数

python函数:函数定义、函数的类型、函数参数、函数返回值、函数嵌套、局部变量、全局变量、递归函数、匿名函数

2025-02-08 23:30:00 986

原创 5.Python字典和元组:字典的增删改查、字典遍历、访问元组、修改元组、集合(set)

Python字典和元组:字典的增删改查、字典遍历、访问元组、修改元组、集合(set)

2025-02-08 22:30:00 563

原创 4.Python字符串和列表:字符串输入、字符串输出、下标和切片、字符串常见函数、列表(list)、列表的循环遍历、列表的增删改查、列表的嵌套、列表的切片

Python字符串和列表:字符串输入、字符串输出、下标和切片、字符串常见函数、列表(list)、列表的循环遍历、列表的增删改查、列表的嵌套、列表的切片

2025-02-07 23:45:00 933 3

原创 3.Python分支和循环:if判断语句、运算符、if-else语句、while循环、for循环、break、continue

Python分支和循环:if判断语句、运算符、if-else语句、while循环、for循环、break、continue

2025-02-07 22:45:00 424

原创 2.Python基础知识:注释、变量以及数据类型、标识符和关键字、输入函数、输出函数、运算符、程序类型转换

Python基础知识:注释、变量以及数据类型、标识符和关键字、输入函数、输出函数、运算符、程序类型转换

2025-02-06 23:45:00 747

原创 1.Python入门:Python发展史、Python应用场景、Python开发环境搭建

Python 入门:Python发展史、Python应用场景、Python开发环境搭建

2025-02-06 23:15:00 615

原创 无限续杯Cursor方案

Too many free trial accounts used on this machine

2025-01-21 15:56:52 3238 4

原创 Hive SQL 执行计划解析

Hive SQL 的执行计划揭示了 SQL 查询在实际执行中的完整流程,通过分析执行计划,可以清楚地看到 SQL 是如何被转换为MR执行逻辑的,掌握这些逻辑有助于快速定位性能瓶颈,从而制定更有针对性的优化策略。

2025-01-20 23:30:00 867

原创 【Flink】Flink内存管理

通过深入理解 Flink 的内存管理机制,开发者可以更好地优化任务性能,避免内存不足或 GC 问题。

2025-01-13 23:00:00 478

原创 【LeetCode每日一题】 LeetCode 151.反转字符串中的单词

给定一个字符串 s,你需要反转字符串中单词的顺序。单词之间由单个空格分隔,字符串中可能有多余的空格。请注意,反转后的单词顺序应保持不变。

2024-12-24 23:15:00 368

原创 【LeetCode每日一题】LeetCode 345.反转字符串中的元音字母

给定一个字符串 `s`,你需要反转字符串中所有的元音字母,并返回新的字符串。元音字母是 `a, e, i, o, u`,这些字母的大小写都要被考虑

2024-12-23 23:00:00 394

原创 【LeetCode每日一题】Leetcode 605.种花问题

假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给你一个整数数组 `flowerbed` 表示花坛,由若干 `0` 和 `1` 组成,其中 `0` 表示没种植花,`1` 表示种植了花。另有一个数 `n` ,能否在不打破种植规则的情况下种入 `n` 朵花?能则返回 `true` ,不能则返回 `false` 。

2024-12-18 23:00:00 229

原创 【LeetCode每日一题】Leetcode 1431.拥有最多糖果的孩子

有 `n` 个有糖果的孩子。给你一个数组 `candies`,其中 `candies[i]` 代表第 `i` 个孩子拥有的糖果数目,和一个整数 `extraCandies` 表示你所有的额外糖果的数量。返回一个长度为 `n` 的布尔数组 `result`,如果把所有的 `extraCandies` 给第 `i` 个孩子之后,他会拥有所有孩子中 最多 的糖果,那么 `result[i]` 为 true,否则为 false。注意,允许有多个孩子同时拥有 `最多` 的糖果数目

2024-12-17 23:30:00 186

原创 【LeetCode每日一题】Leetcode 1071.字符串的最大公因子

对于字符串 s 和 t,只有在 s = t + t + t + ... + t + t(t 自身连接 1 次或多次)时,我们才认定 t 能除尽 s。给定两个字符串 str1 和 str2 。返回 最长字符串 x,要求满足 x 能除尽 str1 且 x 能除尽 str2 。

2024-12-16 22:45:00 338

原创 【Spark】Spark SQL执行计划-精简版

本文简单介绍了从Spark SQL解析到生成可执行代码的全过程,涉及了多种优化策略以及规则

2024-12-16 21:45:00 1180

原创 【[LeetCode每日一题】Leetcode 1768.交替合并字符串

给定两个字符串 `word1` 和 `word2`,以交替的方式将它们合并成一个新的字符串。即,第一个字符来自 `word1`,第二个字符来自 `word2`,第三个字符来自 `word1`,依此类推。如果一个字符串的长度不等于另一个字符串,剩余的字符应该直接添加到合并后的字符串的末尾。

2024-12-13 23:00:00 383

原创 【Spark】Spark数据倾斜解决方案、大表join小表及大表join大表优化思路

Spark数据倾斜主要是由于某些键的数据量不均导致部分节点处理过多数据,影响性能。本文介绍了四种数据倾斜的解决方案以及针对大表与小表的Join、大表与大表的Join的优化思路。

2024-12-13 22:30:00 1608

原创 【Spark】Spark性能调优

本文介绍了十种调优策略,如调整Spark的配置参数、优化数据存储格式(如Parquet和ORC)、避免不必要的shuffle操作、合理设置并行度、充分利用内存和缓存、使用广播变量减少数据传输等方式,来提升作业的执行速度和资源利用率。

2024-12-12 22:00:00 1302

原创 【Spark】Spark的两种核心Shuffle工作原理详解

本文详细介绍了 Spark 中两种核心 Shuffle 工作原理:HashShuffleManager 和SortShuffleManager

2024-12-11 23:00:00 1822

原创 【LeetCode每日一题】LeetCode 1.两数之和

给定一个整数数组 `nums` 和一个目标值 `target`,请你在该数组中找出 **和为目标值** `target` 的那 **两个** 整数,并返回它们的数组下标。你可以假设每种输入只会有一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。

2024-12-11 22:15:00 393

原创 【Spark】Spark Join类型及Join实现方式

在 Spark 中,常见的 Join 类型包括内连接、外连接(左外、右外、全外)和反连接。主要的 Join 实现方式有广播哈希连接(BHJ)、排序归并连接(SMJ)和哈希连接(SHJ)。

2024-12-10 23:15:00 2743

原创 【LeetCode每日一题】LeetCode 209.长度最小的子数组

给定一个正整数数组 `nums` 和一个正整数 `target`,找出连续子数组的最小长度,使得子数组的和大于或等于 `target`。如果不存在符合条件的子数组,返回 0。

2024-12-10 23:00:00 436

原创 【LeetCode每日一题】LeetCode 976.三角形的最大周长

给定一个包含非负整数的数组 `nums`,其中每个元素表示一个线段的长度。你需要从中选出三个线段,组成一个三角形,使得三角形的周长最大,并返回这个最大周长。如果无法组成三角形,返回 0。

2024-12-09 23:45:00 419

原创 【Spark】Spark内存管理

Spark 的内存管理分为堆内内存和堆外内存。堆内内存包括执行内存(用于中间数据)和存储内存(用于缓存数据)。堆外内存提高性能,减少垃圾回收的影响。内存池由执行和存储内存组成,比例可通过配置调整(如 `spark.memory.fraction`)。堆外内存可通过 `spark.memory.offHeap.enabled` 启用。合理配置这些参数可以提高资源利用率,减少 GC 开销,优化作业性能。

2024-12-09 23:00:00 1099

原创 【Spark】 groupByKey与reduceByKey的区别

groupByKey不会在map端进行combine,而reduceByKey会在map端进行本地combine聚合

2024-12-07 22:00:00 383

原创 【Spark】Spark为什么比MapReduce更高效?

文章在8个方面讲述了Spark比MapReduce更高效的原因

2024-12-07 14:15:00 503 2

原创 【Spark】RDD概念、特点、属性、常见操作、缓存级别

RDD(弹性分布式数据集)是Spark中的核心数据结构,支持分布式存储、并行计算和容错。它具有不可变性和懒加载特性,操作分为转换操作(如map、filter)和行动操作(如count、collect)。RDD通过分区和血统信息实现高效计算和容错,确保节点故障时数据恢复

2024-12-06 23:15:00 1107

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除