自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python垃圾回收机制

python内存管理机制:引用计数器,垃圾回收机制引用计数器:一个对象引用数为0时将会释放内存,但它无法检测到对象的循环引用(对象间属性互相调用),从而造成的内存泄漏垃圾回收机制:解决循环引用问题,收集所有容器对象(只有容器对象才会被循环引用),然后找到容器对象引用的另一个容器对象,将另一个容器对象的引用数-1,如果其引用数为0,那么这个容器对象就会被引用计数器回收。为了解决效率问题,垃圾回...

2019-08-27 18:24:26 168

原创 Python实现单例模式

单例模式的作用:防止创建多个对象,造成内存浪费或多个对象之间的信息不匹配带来误解单例模式特点:1)单例类只能有一个实例2)单例类必须自己创建自己的唯一实例3)单例类必须给所有其他对象提供这一实例实现单例模式的集中方法:一)Python 的模块就是天然的单例模式,因为模块在第一次导入时,会生成 .pyc 文件,当第二次导入时,就会直接加载 .pyc 文件,而不会再次执行模块代码。因此...

2019-08-27 18:20:13 195

原创 python i+=1与i=i+1的区别

'''探索 i += 1 与 i = i+1 的区别''''''对于不可变对象int str tuple都会创建一个新的内存地址'''i = 0print(id(i)) # 1564271360i += 1print(id(i)) # 1564271376i = i + 1print(id(i)) # 1564271392'''对于可变类型对象 i+=1不会...

2019-08-27 18:14:14 22234

原创 Python函数参数引用问题

注意:在python中,值相等的不可变对象内存地址是共享的,创建可变对象永远是分配新地址,且分别声明的值相等的可变对象内存地址不同正题:python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。...

2019-08-27 18:11:14 335

原创 利用Python和Hadoop Streaming实现Map Reduce的简单案例

需求:得到每个月温度最高的两天mapper.py#!/usr/bin/env python# -*- coding: utf-8 -*-"""-------------------------------FileName: mapperAuthor: TgwDate: 19-07-28-------------------------------Change Activity...

2019-07-30 13:12:52 245

原创 Python str转byte后转义字符\n失效问题(已解决)

问题最近在使用python操作HDFS,发现在往HDFS文件中追加字符串时,换行的转义字符\n老是不起作用解决办法:在转义字符\n前再添加一个\rwith client.write('/tool/test_first.txt', encoding='utf-8',append=True) as writer: writer.write(' \r\n this is append ...

2019-07-26 11:01:47 3375

原创 Hadoop集群搭建

准备工作4台linux服务器(ubuntu),主机名分别为:master,namesecond,slavenode01.slavenode02关闭linux防火墙sudo ufw disable 查看防火墙状态sudo ufw status jdk(Oracle)zookeeper安装包hadoop安装包windows 域名映射进入C:\Windows\System32\dr...

2019-07-19 14:01:41 190

原创 MySQL-视图

视图含义:虚拟表,和普通表一样使用mysql5.1版本出现的新特性,是通过普通表动态生成的数据行和列的数据来自定义视图的查询中使用的表,并且视图是动态生成的,只保存了sql逻辑,不保存查询结果创建语法的关键字 是否实际占用物理空间 使用视图 create view 只是保存了sql逻辑 增删改查,只是一般不能增删改表 create table 保存了数据 增删改查#案例:查询...

2019-07-17 23:43:45 96

原创 MySQL-事务

1.原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。2.一致性:在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作...

2019-07-17 23:32:44 81

原创 MySQL正则表达式re

MySQL中使用 regexp操作符来进行正则表达式匹配。模式描述^匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘\n’ 或 ‘\r’ 之后的位置。$匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 ‘\n’ 或 ‘\r’ 之前的位置。.匹配除 “\n” 之外...

2019-07-17 23:27:44 477

原创 MySQL-索引

索引:建立索引会提高搜索速度、占用磁盘空间的索引文件、降低表的更新速度。索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。在创建表时建立索引:CREATE TABLE 表名[字段名 数据类型] [UNIQUE|FULLTEXT|SPATIAL|…] |[INDEX|KEY][索引名字] (字段名[le...

2019-07-17 10:05:37 75

原创 MySQL-子句

Where:如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中:SELECT field1, field2,...fieldN FROM table_name1, table_name2...[WHERE condition1 [AND [OR]] condition2.....读取 runoob_tbl 表中 runoob_author 字段值为 菜鸟教程 ...

2019-07-17 09:57:44 683

原创 MySQL-外键

外键用途:1.外键术语约束的一种,外键能保持数据的一致性和完整性,在设置外键的情况下,在子表中插入的关联字段的值必须能在主表的关联字段中找到,且如果要删除主表的关联字段的某个值时,必须保证子表中没有引用该字段值的列,否则无法删除。2.让表记录的数据单一化,不要太冗余外键的使用规则:1.子表的字段必须与外键类型同样2.外键必须是主表的唯一键(主键或unique)3.外键必须是有关联的字段...

2019-07-17 09:48:55 115

原创 数据库基本语法-库和表的操作

创建数据库: create database 数据库名;删除数据库: drop database 数据库名;选择数据库: use 数据库名;创建MySQL数据表的SQL通用语法:CREATE TABLE table_name (column_name column_type);实例 创建数据表runoob_tbl:CREATE [temporary](#临时表) ...

2019-07-17 09:45:06 259

原创 MySQL数据类型

MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。数值类型:MySQL支持所有标准SQL数值数据类型。整数类型的存储和范围:类型大小范围(有符号)范围(无符号)用途TINYINT1 字节(-128,127)(0,255)小整数值SMALLINT2 字节(-32768,32767)(0,65535)大整数值M...

2019-07-16 18:37:11 125

原创 数据库术语

术语意义数据库:数据库是一些关联表的集合。数据表:表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。列:一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。外键:外键用于关联两...

2019-07-16 18:25:05 106

原创 Python连接MySQL

1)import pymysql2)创建连接:conn = pymysql.connect(user='root', password='682240', host='localhost', port=3306, ...

2019-07-16 18:21:53 137

原创 Python网络编程客户端

编程流程:1)创建套接字2)创建连接3)发送数据数据要用二进制个数编码4)接收数据,并设置数据流大小import socketclientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 建立连接:''' 服务器的地址和端口 '''host = '169.254.6.166'port = 1234c...

2019-07-16 18:07:42 113

原创 Python网络编程之服务器

编程流程:1)服务器端先初始化Socket2)然后与端口绑定(bind)3)对端口进行监听(listen)4)调用accept阻塞,等待客户端连接5)在这时如果有个客户端初始化一个Socket,然后连接服务器(connect)6)如果连接成功,这时客户端与服务器端的连接就建立了7)客户端发送数据请求,8)服务器端接收请求并处理请求,然后把回应数据发送给客户端数据要用二进制个数编码...

2019-07-16 18:05:30 237

原创 Python网络编程TCP、IP、UDP

网络编程基础知识唯一标识一个进程:网络编程首要解决的问题是如何唯一标识一个进程,否则通信无从谈起!在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的。其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用程序(进程)。这样利用三元组(ip地址,协议,端口)就可以标识网络的进程了,网络中的进...

2019-07-16 17:57:57 153

原创 Python多线程、多线程

创建多进程import time,multiprocessingdef test_1(name): # current_process()访问当前进程实例name的特性, # 这个特性是当前进程实例的名称 print(multiprocessing.current_process().name) print(name,1) time.sleep(0.5...

2019-07-16 17:42:07 81

原创 Python装饰器

装饰器是一种闭包函数,装饰器中包含的内部函数相当于被装饰的函数,所以当被装饰的函数是有参函数时,装饰器的内部函数也应该有参数装饰器的语法有2中:一种是 被装饰函数名 = 装饰器函数名(被装饰函数名)func = decorator(func)第二种是在被装饰函数的上一行添加一行代码 @装饰器名为了实现有返回值的函数被装饰了之后仍然有返回值,需要内部函数与被装饰函数的返回值保持一致...

2019-07-16 10:20:04 74

原创 python生成注释文档

利用python中的内置模块pydoc1)打开控制台进入 想生成注释文档的 模块的目录。2)输入phton3 -m pydoc -h 以python脚本的形式运行pydoc模块,并查看命令参数3)输入phton3 -m pydoc -w modName 将模块中的注释文档转换为一个html文件...

2019-07-16 10:18:49 950

原创 python的一些内置的异常类

表8-1 一些内置的异常类类 名描 述Exception几乎所有的异常类都是从它派生而来的AttributeError引用属性或给它赋值失败时引发OSError操作系统不能执行指定的任务(如打开文件)时引发,有多个子类IndexError使用序列中不存在的索引时引发,为LookupError的子类KeyEr...

2019-07-16 10:17:31 193

原创 Python对文件进行操作

方法描述seek()将当前读写位置移动到指定位置tell()返回当前读写位置readline()读取一行并返回它readlines()读取所有行writelines()写入一个序列,但没有换行符,需自己添加close()关闭文件fileinput()实现延迟迭代值描 述‘r’读取模式(默认值)...

2019-07-16 10:11:04 179

原创 Python迭代器和生成器

1.列表元素可以用某种算法推算出来,一边循环一边计算,不用直接创建完整的list,从而节省空间,称之为生成器。列表生成式可以通过将方括号换成圆括号变成生成器生成式2.生成器是迭代器的一种,使用yield返回值函数,每次调用yield会暂停,可以使用next()函数和send()函数恢复生成器;send()函数不光会唤醒生成器还会往生成器中发送消息,传递的参数就会作为yield表达式的值。sen...

2019-07-16 10:02:42 78

原创 消除Hadoop警告WARN util.NativeCodeLoader

刚刚部署完Hadoop集群,使用hdfs命令时老是会报一堆警告,虽然没有妨碍到集群正常运行,但是很烦人例如:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable解决方法:进入hadoop集群安...

2019-07-16 09:58:13 803

原创 Python基础数据结构及其常用方法

Python基础语法列表元组字符串字典语句面向对象编程列表元组1.列表和元组序列:序列是一种数据结构,其中的元素带编号(编号从0开始)。列表、字符串和元组 都属于序列,其中列表是可变的(你可修改其内容),而元组和字符串是不可变的(一旦 创建,内容就是固定的)。要访问序列的一部分,可使用切片操作:提供两个指定切片起 始和结束位置的索引。要修改列表,可给其元素赋值,也可使用赋值语句给切片赋值。...

2019-07-16 09:42:12 293

空空如也

空空如也

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

TA关注的人

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