📷
最近有点忙有点烦,天天忙于数据治理,说是数据治理,整天就是忙于整理和下发各种表格,从开始下发到各地区的表格合并进来,再到入库,再到比对,再到分离下发,再到按字段拆分,从xlrd,lxlwr,openpyxl...,pandas,再到cx_Oracle,再到fuzzywuzzy,gensim等等,从最初的流水版本进化到封装成类,挺繁琐的,不过也挺好玩的。...整个文件的资源目录结构如下 要做的事情就是把各子文件夹下文件名为《文件类型一》、《文件类型二》、《文件类型三》的全合并成一个个大文件,sheet名都是Sheet0,还是有章可循的。...if os.path.isfile(fullpath): continue allfiles=os.listdir(fullpath) # 获取各单位文件夹下的文件...format(destfilename)) 代码还是有很多简化和优化空间的。
操作系统多级页表与快表--12 为了提高内存空间利用率,页应该小,但是页小了页表就大了... 页表会很大,页表放置就成了问题......第一种尝试,只存放用到的页 第二种尝试:多级页表,即页目录表(章)+页表(节) 多级页表提高了空间效率,但在时间上? TLB得以发挥作用的原因 为什么TLB条目数可以在64-1024之间?...---- 为了提高内存空间利用率,页应该小,但是页小了页表就大了… 对于32的操作系统来说,用于寻址的位数是32位,那么最多可以表示2的32次方大小的地址,也就是4G。 4G大小能够存放多少页呢 ?...---- 页表会很大,页表放置就成了问题… 页面尺寸通常为4K,而地址是32位的,所以32地址能够表示2的20次方个页面。...为了保证页表项连续,并且还要减少页表对内存的浪费,就必须采用多级页表的形式,但是多级页表时间上的不足,应该由什么来弥补呢?
目录 问题描述 CPU接收的是线性地址,不是物理地址 对页目录进行"自操作" 一级查表:构造线性地址的前十位 二级查表:构造线性地址的中间十位 三级查表:构造线性地址的最后十二位 三个地址段合体...现在我们的问题是:需要把页目录作为最终的操作对象。 也就是说,从页表中找到的“普通页”的物理地址,应该等于页目录的物理地址! 作为一名软件开发人员,递归思想都是有的。...二级查表:构造线性地址的中间 10 位,来确定“普通页”的物理地址 二级查表:查找的对象是页表,也就是一级查表得到的那个“页表”。...对页表进行寻址 既然已经弄明白了操作系统是如何操作页目录的,那么对页表的操作就不是什么大问题了。...二级查表 利用这个页表的最后一个表项(index = 1023),预先填写一个地址(0x08000),让它指向这个页表自己的开始物理地址。
Excel表要写入数据库,毕竟通过pandas来操作复杂的数据还是很有难度的,有多少种数据库,就有多少种数据库引擎,要下载多少python数据库包,同样对Excel写入数据库的操作,可以基于excel按行写入...基于openpyxl写入数据的操作包括,以下几步 1、基于表名构造一个绑定变量的SQL 2、读取excel表,转换为list 3、逐行写入,最后提交 踩坑如下: cx_Oracle.DatabaseError...: DPI-1043:invalid number一般是excel表出现空值 还有就是一些生僻的汉字写入数据库的时候,报汉字编码错误,没找到合适的解决办法。...: DPI-1043:invalid number 问题 pddata = pd.read_excel(filename, header=0, engine="openpyxl").fillna...datalist: c.execute(sql,tuple(data)) conn.commit() c.close() 基于pandas写入数据库,一定要使用sqlalchemy,操作比较简单
首先来看一个比较简单的问题,我们想实现的就是每隔1s输出0-4的值,就是这么简单,看下错误写法: function test() { for (var i = 0; i < 5; ++i) {...输出如下: index is : 5 index is : 5 index is : 5 index is : 5 index is : 5 而且该操作几乎是在同一时间完成,setTimeout定时根本就没有起作用...,这是因为:单线程的js在操作时,对于这种异步操作,会先进行一次“保存”,等到整个for循环执行结束后,此时i的值已经变成5,因为setTimeout是写在for循环中的,相当于存在5次定时调用,这5次调用均是在...可以理解为一个封闭的代码块,该代码块中的代码会在定义时立即执行一遍,各个代码块的作用域彼此独立,不会污染外部环境,写法其实有很多种,上面只是一种,同样的还有使用void、+、-、!...等等,jquery源码就是直接使用的这里的圆括号写法的这种。
,如果只使用了一个页表,一个表项的大小为4byte,32位系统有4GB的物理空间(一个进程看到是4GB大小的虚拟空间),每一个表项对应着物理空间的第xxx页(4KB大小的页),那么应该有4GB/4KB=...如果是二级页表,规则就会改变,让二级页表对应到物理内存上的4KB大小的页,一级页表此时变成映射为物理地址的4MB(这样子是无法定位到具体的页(4KB)的,所以二级页表再去找),这样先找到一级页表,一级页表再和二级页表进行结合...,二级页表相当于一级页表4MB分成了1024个(1KB个)4KB,找完后二级页表充当了offset的角色,此时定位到具体的4KB的页面,再用一级页表的offset一结合定位到具体物理地址。...这样一个进程浪费掉的空间是一级页表占用的:(4GB/4MB)*4byte=4KB,二级页表浪费掉的是1kb(1个一级页表占用这么多)*1kb(此时有1kb(4GB/4MB)个一级页表)=4MB,加起来是...4MB+4KB,比光用一级页表要多4KB,但是2级页表是可以不存在的,比如此时程序只用了%20的页,那么4MB就需要乘以%20,这样一下子就比只有一级页表时少了。
:param sheettitleflag:sheet表的表头标志 如果sheettitleflag为False,则用title作为sheet表头...否则用sheet表第一行做表头 :param sheettitle: 指定的sheet表头 :param readwriteflag: 指定读写状态...r 读取sheet w 写入新表 a 追加sheet :return: ''' self.filename...sheet.readData() print(sheetname1,'sheet,标题为',sheettitle,'数据量为=',recordnumber) print(sheetname1,'sheet,表数据为...xlsx' basepath = r'C:\Users\baoqi\Documents\【广州】学习材料\业财一致性' writefile=ReadExcel() data=[] # 读取excel表的
设计自己的页表 只针对32位的操作系统,设计一个二级页表,目的是构建一个简易的能跑起来的操作系统。...对于4G的地址空间,每个页大小是4K,模仿Linux早期的做法,32位地址的前10位为页目录项,中间10位为页表,后面10位为偏移量。...1M的地方,即 0x100000,目录项占 1K * 4B = 4K,那么页表在 0x101000的地方。...,我们的内核用了这个地方,方便操作 最后一个目录项指向页目录表自己的地址,为了后面进程页表操作方便 setup_page: ;先把页目录占用的空间逐字节清0 mov ecx, 4096 mov...; 下面将页目录项0和0xc00都存为第一个页表的地址, ; 一个页表可表示4MB内存,这样0xc03fffff以下的地址 ; 和0x003fffff以下的地址都指向相同的页表, ; 这是为将地址映射为内核地址做准备
Levenshtein Distance算法,又叫 Edit Distance算法,是指两个字符串之间,由一个转成另一个所需的最少编辑操作次数。...许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。一般来说,编辑距离越小,两个串的相似度越大。...import pandas as pd import jieba import fuzzywuzzy from fuzzywuzzy import process import datetime # 定义数据表...endtime - starttime print('3、匹配名称和阈值=',duringtime.seconds,'秒 开始时间=',starttime,'结束时间=',endtime) # 新建一个目标表,...Fuzzywuzzy适用于小数据集的比对,几百条vs几百条,当数据量上升到上千的时候,速度无法接受,基本上一秒钟可比对上千条记录。 后文会介绍一个更快更准确的模糊匹配工具。
gensim的一些常见概念: 语料Corpus: 一组原始文本的集合,用于无监督地训练文本主题的隐层结构,语料中不需要人工标注的附加信息。...向量Vector: 由一组文本特征构成的列表,是一段文本在Gensim中的内容部表达。...稀疏向量SparseVector: 通常 我们可以略去向量中多余的0元素,此时向量中的每一个元素是一个(key,value)的tuple....模型Model: 是一个抽象的术语,定义了两个向量空间的变换(即从文本的一种向量表达变换为另一种向量表达) 下面为相关代码,代码结构和前面的Fuzzywuzzy是类似的,不过执行起来,效率是前者的几十倍上百倍...关于本文的步骤: 1、读取Excel表格 2、进行jieba分词 3、构建语料字典 4、通过doc2bow转换为稀疏向量 5、构建TfidfModel模型,进行训练 6、实现相似度查找 from gensim
但是我们的三环是不可以操作的.这个属于特权指令.如果用汇编进行操作.例如: __asm mov cr0,8000000 程序会崩溃,提示你权限不够,并且报告错误码为 C096 但是我们0环可以进行操作的...刚才我们说的高位为1的是否就去掉分页保护,此时访问虚拟内存 等价于访问物理内存,其实我们修改的是PG位 关于位怎么说的,inter手册也说.这里我总结一下重要的,如果不相信我可以查看inter手册....当我们的线性地址转化为物理地址的是否,会进行查表. 进而查询到物理地址是那个. 微软采用的是这种方式. 线性地址转物理地址需要注意的页问题. 这个问题则是页的映射....我们说过,操作系统为了隔离内存.采用了分页管理.而我们线性地址转化到物理地址的时候. 则需要查表. 那么我们觉着这个表应该怎么做?...首先我们的CR3寄存器保存了表的首地址. 这里有一个页目录表,还有页表的关键词. 页目录表: 也称为PDE,而页表称之为PTE.
id=242 3.参考上面的网址的介绍,通过dns服务器和url Re_write 组件的方法我均未能实现二级域名跳转,原因不明. 4,利用iis和程序来实现二级域名(泛二级域名)跳转 1)配置一个主机头留空的虚拟站点...strURL1= Lcase(iURL(0)) strURL2= Lcase(iURL(1)) arrcount=UBound(iURL) ””假定其中一个网站的域名为www.domainname1...username=”&strURL1) End If %>每个网站可以根据自己内部网站程序的不同来撰写不同的url跳转.对整个主机来说,只要存在泛域名访问就会先访问这个default.asp文件...这样就是实现了一个文件来管理整个iis网站的泛域名的跳转.5.如果要实现 www.domainname.com/username1 跳转到 www.domainname.com/blog/index.asp...username=username1 的方式,则需要通过使用 ISAPI_Rewrite URL处理引擎,具体方式参考该组件的介绍.6.如果是asp.net程序话,可以参考http://www.microsoft.com
这行简单的代码在chrome里没有问题,不过在 firefox 中如果点击这个标签就会立刻弹出一个 about:blank 的空白标签页,非常的不友好。...解决 这个问题解决起来其实也很简单,原因就在于不知道为什么当时手贱顺手加了个 target="_blank" ,在大多数浏览器会在看到 javascript:void(0);之后阻止了创建页面的操作,但是...firefox却优先考虑创建标签页,这才造成了这个问题。...但是从逻辑上讲,a标签的语义就是链接跳转,我们这种操作其实是违背了a标签的设计初衷的,因此 mozilla 官方并不推荐我们这样做。...相比之下,button 的语义才是确认用户的意图,这个跟标签页的语义相当,所以他才会推荐我们在做标签页的时候使用button标签。
因此,操作系统的大小写是否敏感决定了数据库大小写是否敏感,而 Windows 系统是对大小写不敏感的,Linux 系统对大小写敏感。...默认情况下,库表名在 Windows 系统下是不区分大小写的,而在 Linux 系统下是区分大小写的。列名,索引名,存储过程、函数及事件名称在任何操作系统下都不区分大小写,列别名也不区分大小写。...你有没有考虑过 lower_case_table_names 设为 0 会出现哪些可能的问题,比如说:一位同事创建了 Test 表,另一位同事在写程序调用时写成了 test 表,则会报错不存在,更甚者可能会出现...也可以将 lower_case_table_names 设为 1 来解决此问题,我们来看下此参数为 1 时的情况: # 将上述测试库删除 并将 lower_case_table_names 改为 1 然后重启数据库...若存在大写的库表,则需要先将大写的库表转化为小写,然后才可以修改配置文件重启。
大表Online-DDL操作问题初探 今天下午在执行一个表结构变更的时候,出现了一个问题,拿着分析了分析,对于online-ddl又有了新的认识,这里写篇文章记录下。...需要进行的操作:给该表新增4个字段 02 执行方案 看到这个问题,我进行了两个测试: 首先将该表进行备份,并且在测试环境上恢复了一份,不加任何的写入操作,直接在测试环境上执行alter table...的操作,执行时间是16.6s,这个时间从业务的角度讲,是有问题的; 然后又重新模拟线上的写入操作,重新执行该alter操作,在执行的时候出现下面的问题: ERROR 1062 (23000): Duplicate...03 关于online-ddl的一点说明 MySQL的online ddl操作是在5.6版本引入的,在不同的版本下,有不同的执行过程: 1、在MySQL5.5版本前,我们是使用表copy的方式来进行alter...table操作的,需要借助一个临时表将全部数据拷贝,然后进行rename操作,这个过程中,是需要锁表的,原表只能读不能写。
表的高级操作:倾斜表&事务表 Hive倾斜表(Skewed Tables) 什么是倾斜表? 对于一列或多列中出现倾斜值的表,可以创建倾斜表(Skewed Tables)来提升性能。...但如果表A是Skewed Tables,A.id=1被设置为倾斜值,那么在执行表A与表B的Join操作时,会自动进行以下优化: 将B表中id=1的数据加载到内存哈希表中,分发到A表的所有Mapper任务中...如果你当前的版本,存在一些支持上的问题,那么对于以下代码不需要去执行,只做了解即可。...但事务功能仅支持ORC表,而且事务功能依赖分桶的存储格式,所以事务表必须进行分桶操作。 Hive开启事务配置 默认情况下事务是非开启状态的。...对于事务表,可以查看所有正在进行的事务操作: SHOW TRANSACTIONS; 事务表的压缩 随着对事务表的操作累积,delta文件会越来越多,事务表的读取会遍历合并所有文件,过多的文件数会影响效率
#前言:我们说过,库相当于一个文件夹,表相当于文件夹里的一个个文件,表里面的一条记录相当于一行内容,表中的一条记录有对应的标题,称为表的字段 #直观表 ?...#id,name,sex,age为表的字段,其余一行内容称为一条记录 1.建表 #创建表语法格式 Create table ( , …..... ); #提示: 1.其中create table是关键字,不能更改,但是大小写可以变化 2.字段名和类型是必须的 3.同张表中,字段名不能相同 #查看帮助:help...: create table 表示创建表的固定关键字,student为表名,有四个字段,分别表示 id:学号列, int:数字类型, 4:长度为4, not null:不为空值...#语法格式:drop table #例子:删除db库里面的student表 mysql> use db; Database changed mysql> show tables; #查看库中的表
新增字段 alter table hdbft.rpt_device_group add( BLNAME varchar2(20),FAMILYGROUP var...
: NVL 函数 格式:NVL(表达式1,表达式2) 作用:测试表达式的值,如果表达式1为空,则返回表达式2的值;不为空,返回表达式1的值。 ...NVL2 函数 格式:NVL2(表达式1,表达式2,表达式3) 作用:测试表达式的值,表达式1不为空,返回表达式2的值,如果为空,则返回表达式3的值。 ...2、nvl2函数 格式:NVL2(表达式1,表达式2,表达式3) 作用:测试表达式的值,表达式1不为空,返回表达式2的值,如果表达式1不为空,则返回表达式3的值。...:运算规则一致当TO_ChAR(age)不为空(true)时,执行2*(age+sex),否则就执行后面的表达式age 注意:NULL和任何数进行算数操作,其返回值都是NULL。...3、NULLIF函数 格式:NULLIF(表达式1,表达式2) 作用:当表达式1的值等于表达式2的值,返回空.如果表达式1的值不等于表达式2的值,返回表达式1的值 这个函数相当于CASE WHEN
领取专属 10元无门槛券
手把手带您无忧上云