- 博客(21)
- 资源 (4)
- 收藏
- 关注
原创 Hive简介
Hive简介:Hive是由Facebook开源的,用于解决海量结构化日志的数据统计工具。它是基于Hadoop的一个数据仓库工具,处理的数据存储在HDFS中。可以将结构化的数据文件映射为一张表,并提供HQL(类SQL)查询功能。其本质是将HQL转化为MapReduce程序。Hive架构:1.用户接口:ClientCLI(hive shell)、JDBC/ODBC(java访问hive)、WEBUI(浏览器访问hive)2.元数据:Metastore元数据包括:表名、表所属的数据库(默认是defa
2021-04-06 00:38:09
323
转载 推荐两篇介绍CAP的文章
https://time.geekbang.org/column/article/9302https://time.geekbang.org/column/article/9390
2021-04-02 00:17:19
143
原创 ClickHouse简介
ClickHouse的全称是Click Stream,Data Warehouse。是2016年由俄罗斯Yandex公司(类似国内某度)开源的一款MPP架构(大规模并行处理)的列式存储数据库,支持SQL,不支持事物。主要用于OLAP领域。非常适合商业智能领域(BI领域)。不擅长根据主键按行粒度查询,不擅长按行删除数据。BI是Business Intelligence(商业智能)的缩写,是指企业利用已有数据进行数据分析从而指导商业决策的过程。数据库从业务应用类型来划分,可以分为:OLTP、OLAP、HTA
2021-04-01 22:38:13
1668
1
原创 无序数组中获取第k个最大数
假设数组为nums,其长度为length,大于0;k的取值总是合理的。方法1:排序法对数组进行排序,如果是正序,则取索引为 [length-k] 的值;如果是倒叙,则取索引为 [k-1] 的值。方法2:选择排序法将数组分为已排序和未排序两部分,每次从未排序中选择最大的元素,放到已排序部分的最末位置,只需进行k次操作,便可得到第k个大的元素,即索引为 [k-1] 的值。方法3:分治法(借助快排思想)从数组中随机选择一个数,将大于等于该数的放到该数的左侧,小于该数的放到该数的右侧。假设该数在调整之后
2021-03-08 20:37:24
2084
1
转载 达克效应
达克效应(D-K effect),全称为邓宁-克鲁格效应(Dunning-Kruger effect)。它是一种认知偏差现象,指的是能力欠缺的人在自己欠缺能力的基础上得出自己认为正确但其实错误的结论,行为者无法正确认识到自身的不足,辨别错误行为。这些能力欠缺者们沉浸在自我营造的虚幻的优势之中,常常高估自己的能力水平,却无法客观评价他人的能力。(百度百科)邓宁-克鲁格效应(英语:Dunning-Kruger effect),或简称达克效应(DK effect),是一种认知偏差,能力欠缺的人有一种虚幻的自我优
2021-03-08 20:26:45
1691
原创 复杂度分析
数据结构与算法是为了解决快和省的问题,即如何让代码运行的更快,占用的存储空间更省。那如何来衡量代码的快和省呢,就需要进行时间和空间复杂度分析。1、为什么需要复杂度分析我使用测试数据把代码跑一边,通过统计、监控,就能知道算法的执行时间和占用的空间大小,为什么还需要进行复杂度分析?当然,这种评估方法也是正确的,可以称作事后统计法。但这种方法有很大的局限性a、评估结果非常依赖测试环境b、测试数据对评估结果影响很大所以我们需要一个不依赖测试环境和测试数据的评估方法,来粗略估计代码的效率和占用的空
2021-02-22 22:52:10
67
原创 背包问题总结
1、什么是背包问题 有n件物品,1个最多可以装下重量为w的背包。每件物品有两个属性,一个是重量,第i件物品的重量为weights[i];一个是价值,第i件物品的价值为values[i]。2、背包问题的分类 如果每件物品只有1个,则为01背包; 如果每件物品有无数个,则为完全背包; 如果每件物品的数量不相同,则为多重背包; 如果对背包进行了分组,每组只能选一个,则为分组背包。 其中01背包和完全背包最为常见。背包问题的经典资料非[背包九江]莫属。但这份资料对于刚入门的小白来说
2021-02-19 23:08:14
286
原创 回溯法总结
1、什么是回溯法回溯法也可以叫做回溯搜索法,它是一种搜索的方式。其实现使用递归。其本质为穷举所有可能,找到我们想要的解。想要提高回溯法的效率,只能通过剪枝操作,减少重复或者无效的计算,具体手段可以使加缓存或者提前中断回溯。2、回溯法实现要实现回溯法,需要注意以下三点:a.函数的返回值及参数b.终止条件c.单层搜索逻辑3、力扣题目推荐组合,组合总和III,组合总和(元素不重复,每个元素使用次数不受限制),组合总和II(元素重复,每个元素只能使用一次),电话号码的字母组合分割回文串,复原
2021-02-19 23:06:12
493
原创 循环队列
非循环队列public class ArrayQueue { private String[] items; private int n = 0; private int head = 0; private int tail = 0; public ArrayQueue(int capacity) { items = new String[capacity]; n = capacity; } public boolean enqueue(String i
2021-01-19 23:18:36
67
原创 链表中的哨兵节点
哨兵节点在没有哨兵节点时对链表进行插入操作时,需要判断当前链表是否有节点,代码大致如下:if(head == null){ head = newNode();}else{ newNode.next = current.next; current.next = newNode;}在进行删除操作时,需要判断删除的是否是最后一个节点,代码大致如下:if(head.next == null){ head = null;}else{ current.n
2021-01-18 22:31:04
2005
原创 LRU缓存淘汰算法
缓存淘汰策略常见的有三种:先进先出策略FIFO(First In, First Out)、最少使用策略LFU(Least Frequently Used)、最近最少使用策略LRU(Least Recently Used)。常见的链表结构:单链表,双向链表,循环链表。链表VS数组:链表和数组是两种截然不同的内存组织方式。数组需要内存连续,所以数组随机访问的时间复杂度为O(1),但其插入和删除的时间复杂度为O(n)。链表不需要内存连续,所以链表随机访问的时间复杂度为O(n),但其插入和删除的时间复杂度为O(
2021-01-17 22:35:22
120
原创 为什么大多数语言数组的索引都是从0开始的?
数组定义: 一种线性表数据结构,使用一组连续的内存空间,存储一组具有相同数据类型的数据。重点: 线性表:数据排成一条线一样的结构。与之对应的是非线性表,如树、图等。 连续的内存空间:这是一把双刃剑,带来的好处是数组的随机访问。弊端就是在数组中删除或者插入一个数据时, 为了保证内存的连续性,需要进行大量的数据搬移工作。数组随机访问的实现: 定义整型数组 int[] array = new int[5],每个int分配四个字节,总共20个字节。假设内存地址从2000开始
2021-01-17 22:33:45
2335
原创 华为od面试
华为od面试:先进行了一轮机试,再进行了一轮性格测试2020.8.24:第一轮技术面试,和面试官聊了业务,做了一道数组求并集和差集的编程题2020.9.2:第二轮技术面试,做了一道求最短路径的编程题2020.9.4:第三轮技术面试,做了一道有关文件读取的编程题2020.9.14:HR资格面试2020.8.25:部门领导综面...
2020-09-29 22:46:25
3091
原创 python 使用gevent和普通方式下载图片
import geventfrom gevent import monkeyimport timemonkey.patch_all()import requestsimport uuiddef download_data(url): res = requests.get(url) with open('{}.jpg'.format(uuid.uuid1()),'wb...
2019-06-16 21:11:00
258
原创 python使用迭代器和生成器实现斐波那契数列
使用迭代器实现斐波那契数列:class Fibonacii(object): def __init__(self,all_num): self.all_num = all_num self.cur_idx = 0 self.a = 0 self.b = 1 def __iter__(self): ...
2019-06-16 18:21:53
506
原创 Python可迭代对象、迭代器、生成器
可迭代对象中需要实现__iter__函数,且该函数的返回值为迭代器。迭代器对象中需要实现__iter__和__next__函数生成器:一种特殊的迭代器for循环的过程如下:for item in some_obj:# 判断some_obj是否是可以迭代的(isinstance(some_obj,Iterable))# 使用iter函数获取__iter__的...
2019-06-16 15:44:22
105
原创 python使用闭包和类实现装饰器功能
#使用闭包def decorator(func): def inner(*args,**kwargs): print('装饰前') func() print('装饰后') return inner@decoratordef test(): print('test') test()#使用类...
2019-06-16 02:54:26
273
原创 python实现策略模式
#与简单工厂模式相比,只将CashText暴露给了display.py。import abcclass CashSuper(metaclass=abc.ABCMeta): @abc.abstractmethod def accept_cash(self, money): passfrom cash_super import CashSuperclas...
2019-06-11 23:34:31
288
原创 python实现简单工厂模式
#基础import abcclass OperationBase(metaclass=abc.ABCMeta): @abc.abstractmethod def __init__(self, num_1, num_2): self.__num1 = num_1 self.__num2 = num_2 @property def...
2019-06-11 21:57:02
165
转载 设计模式基本概念
序号 模式 & 描述 包括 1 创建型模式 这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 单例模式(Sing...
2019-06-09 21:07:24
89
原创 C#提高书籍推荐
C#网络通信程序设计、C#多线程编程实战(原书第二版)、Effective C#:改善C#代码的50个有效方法(原书第3版)、C#并发编程经典实例、.net设计规范、编写高质量代码:改善C#程序的157个建议。...
2018-08-30 08:10:36
2998
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人