自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 问答 (5)
  • 收藏
  • 关注

原创 hdfs设计和概念

hdfs设计 建立思想在:一次写入、多次读取的模式 为什么设计块 1.简化存储子系统,容错性和实用性比较高; 2.一个文件可以大于网络任何一个磁盘的容量。把文件分块,文件就不需要存储在同一个磁盘里面了。 namenode和datanode hdfs是管理者和工作者的设计模式。 namenode管理的是文件系统的命名空间,包括文件系统树、以及这个树内所有的文件和索引目录。以两种形式存储在本地磁盘:editlog(编辑日志)和fsimage(命名空间镜像)。 datanode是工作者:存储并提供定位块的服务(被

2020-09-24 14:45:49 325

原创 hadoop中combiner的作用

之前一直很困惑combiner有什么用,这次看了书有了一些理解的 hadoop允许用户声明一个combiner,运行在map的输入上,函数的输出作为reduce函数的输入。 比如: 对这样的语句"daddy finger, daddy finger, where are you, here I am, here I am, how do you do"进行workcount。 有两个map分别处理三个短句, map1的输出结果是:<daddy, 1> <finger, 1> <

2020-09-24 10:57:30 1827 2

原创 各种树:完全二叉树

一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同,则这棵二叉树称为完全二叉树。 判断规则: 层次遍历节点 1)如果一个节点无左有右孩子 则肯定不是 2)如果一个节点有左无右孩子 或者都没有孩子 那就之后遇到的每个节点都必须是叶子节点才行; ...

2020-09-18 10:00:28 381

原创 leetcode141. 环形链表和160. 相交链表

链接: https://leetcode-cn.com/problems/linked-list-cycle/ 方法一:把所有的节点放到set,不用列表因为列表添加元素比较慢。 class Solution: def hasCycle(self, head: ListNode) -> bool: set1=set() while head: if head not in set1: set1.add(he

2020-09-13 12:35:47 259

原创 leetcode127-复制带有随机指针的链表

链接:https://leetcode-cn.com/problems/copy-list-with-random-pointer/ 利用字典存放,先复制,后指针 """ # Definition for a Node. class Node: def __init__(self, x: int, next: 'Node' = None, random: 'Node' = None): self.val = int(x) self.next = next

2020-09-12 16:39:15 151

原创 alibaba

基础题: 1.销售表sales_dtl有城市(city),销售经理(cbm),客户(customer),销售金额(sale_amt)三列字段,请用sql取出每个城市中销售金额为本城市前10名的销售经理的信息。 select a.city ,a.cbm ,row_number() over (partition by a.city order by a.sum_sale desc) as rank –如果并列第十名也算第十用rank from ( –获得每个销售经理的销售总额 select city ,cbm

2020-09-10 15:37:21 640

原创 求数组排序之后,相邻两数的最大差值,不用比较型的排序,时间复杂度O(N)

求数组排序之后,相邻两数的最大差值,不用比较型的排序,时间复杂度O(N) 第一步:准备桶 如果有n个数,就准备n+1个桶 先遍历数组 找到最小值和最大值 第二步:最小值放到第0号桶,最大值放到n号桶 第三步:把桶进行等分,属于哪个范围就放在哪个桶 比如 0,10,15,20,21,25,29,90,100 准备10个桶。 范围划分为: 0-9 10-19 20-29 30-39 40-49 。。。。。以此类推 相邻两数可能存在与同一个桶 也可能存在于不同的桶 第四步: 收集进入这个桶的最大值和最小值 以及这

2020-09-03 23:46:24 269

原创 排序算法之稳定性

之前有一个误区 以为稳定性指的是同样的输入 时间是否是稳定的。但是这样是错误的,实际上应该是: 如果具有相等键的两个对象在排序输出中出现的顺序与它们在要排序的输入数组中出现的顺序相同 可以做到稳定排序的算法: 归并排序,冒泡排序,直接插入排序,折半插入排序 不可以的: 快速排序(因为partition不稳定) 堆排序(交换的过程不在乎相等的值) 希尔排序 直接选择排序 为什么要追求稳定性呢? 比如有年龄 姓名 身高 的信息 17 小明 170 17 小王 175 19 小李 174 这样我先排序身高后再排序

2020-09-03 22:17:14 176

原创 排序算法之堆排序

堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。 同时,我们对堆中的结点按层进行编号,将这种逻辑结构映射到数组中就是下面这个样子: 该数组从逻辑上讲就是一个堆结构,我们用简单的公式来描述一下堆的定义就是: • 大顶堆:arr[i] >= arr[2i+1] &a

2020-09-03 14:33:04 207

原创 大数据题目总结

https://www.cnblogs.com/aspirant/p/7154551.html https://www.cnblogs.com/anliux/p/12850582.html https://www.cnblogs.com/zl1991/p/13109760.html

2020-08-05 15:58:59 213

原创 hiveSQL之json多层嵌套解析的方法

SELECT id ,get_json_object(get_json_object(operate_content,'$.finishTime'),'$.n') ,get_json_object(operate_content,'$.finishTime.n') FROM dw.dw_plat_sinan_ticket_operate_record_da WHERE pt='20200730000000' and id='1112167'

2020-07-31 17:01:13 3742

原创 实习复盘(一)

大数据开发实习已经一个多月了,写一写自己在这实习期间的优点和缺点。 优点: 1.和产品小姐姐沟通的都比较顺畅,对业务方的需求也比较清晰。 2.学习能力尚可,感觉自己这一个多月进步的很快,对业务流数据流也有了比较清晰的认识,数据建模的方法和思想也掌握和应用了。 缺点: 1.对于串讲的能力需要提升,汇报演讲需要些自信和果敢,这方面需要提升。 2.考虑的不够周全,有一些业务上可能出现的问题有时候没有思考周全。 反思: 1.技术是为业务提供支持的,想做好技术,对业务就要有理解和反思。 2.不能傻傻的去做需求,要明白

2020-07-06 11:18:14 501

原创 hive 之sort by和order by

sort by和order by 其实都是用来排序的。 order by 可以得到一个全局的排序的一个结果 如果sort by的reducer的数量为1的话 实际上得到的结果和order by是相同的。 大多数时候用order by其实没什么问题,但是当数据量非常大时,order by的开销实际上就非常大了,做不到全局排需的效果,然后sort by就可以出场了。 但是sort by 实际上是再每一个reducer中排序,得到实际上是一个局部有序的结果,要想得到全局的结果还需要处理一下。 但是我们有时候希望将

2020-06-11 16:09:36 1738

原创 sql优化之not in

今天做一个全量表改增量表的工作: 想找b表不在a表的那部分数据 自然而然想到的就是not in 但是实在是太慢了 搜索了可以优化的方案 not exists select * from t where not exists (select null from t t2 where t2.y=t.x ) IN和Exists的区别 简单来说,前者是非相关子查询,子查询先执行,且只执行一次,执行完毕后将值传递给外层查询;后者是相关子查询,将外层查询的一个元组传递给内层查询,然后执行内层查询,外层查询根据返回的结

2020-06-05 18:01:26 674

原创 hive之join

hive支持sql join 语句但是只支持等值连接,并且还不支持在on字句中的谓词间使用or 有左外连接右外连接内连接全连接笛卡尔积 比较特殊的还有left semi-join(左半开连接) 左半开连接可以返回左边表的记录 前提是右边表满足on语句的判定条件 https://www.cnblogs.com/wqbin/p/11023008.html 这里还有需要注意的一个点 map-side join 如果所有表里面只有一个是小表,那么可以在最大的表通过mapper的时候将小表完全放入内存中,hive可以

2020-06-03 13:30:15 288

原创 hive踩坑(1)

No partition predicate found for Alias 用户不允许扫描所有的分区,所以不能当sql同等对待

2020-06-03 10:14:00 487

原创 hive之表生成函数

表生成函数和聚合函数的感觉是相反的 表生成函数可以把单列扩展到多列 explode 函数 1.explode(array) 可以返回0到多行的结果,每行对应的是array数组中的一个元素。 2.用于map类型数据时 由于map是key-value结构的,所以它在转换的时候会转换成两列,一列是key转换而成的,一列是value转换而成的。 explode(map_col) as (may_key_col, may_value_col) 3.局限性: 不能关联原有的表中的其他字段。 不能与group by、cl

2020-05-29 18:38:43 408

原创 hive之nvl函数和coalesce和substr函数

nvl函数: NVL(E1, E2)的功能为:如果E1为NULL,则函数返回E2,否则返回E1本身。 Coalesce函数: 格式如下:Coalesce(expr1, expr2, expr3…… exprn) Coalese函数的作用是的NVL的函数有点相似,其优势是有更多的选项。表示可以指定多个表达式的占位符。所有表达式必须是相同类型,或者可以隐性转换为相同的类型。返回表达式中第一个非空表达式 substr函数: substr(string A, int start, int len),substrin

2020-05-29 16:19:20 1926 1

原创 位运算操作总结

2020-05-04 21:19:02 181

原创 98. 验证二叉搜索树 python 递归+中序遍历

https://leetcode-cn.com/problems/validate-binary-search-tree/ 思路一: 中序遍历放在list里面,然后判断大小 class Solution: def isValidBST(self, root: TreeNode) -> bool: output = [] self.inOrder(roo...

2020-04-13 22:17:24 421

原创 python 递归模板和分治模板

要注意设立停止递归的条件

2020-04-13 18:48:36 646

原创 python 前序中序后序遍历模板

2020-04-13 16:26:41 311

原创 1.两数之和 python o(n)解法

一次遍历o(n) 利用哈希表 def twoSum(self, nums, target): if len(nums) <= 1: return False buff_dict = {} for i in range(len(nums)): if nums[i] in buff_dict: ...

2020-04-13 15:10:31 265

原创 239. 滑动窗口最大值( 队列,python)

题目:https://leetcode-cn.com/problems/sliding-window-maximum/ def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]: from collections import deque d = deque() r...

2020-04-13 11:46:55 210

原创 84. 柱状图中最大的矩形 python

heights.append(0)是为了防止是5,6,7,8这种正序的,没办法取边界的情况 题目链接: https://leetcode-cn.com/problems/largest-rectangle-in-histogram/ def largestRectangleArea(self, heights: List[int]) -> int: heights.appen...

2020-04-13 11:22:40 142

原创 归并排序

1.把长度为n的输入序列分成两个长度为n/2的子序列; 2.对这两个子序列分别采用归并排序; 3.将两个排序好的子序列合并成一个最终的排序序列。 def merge_sort(lists): if len(lists)<=1 : return lists mid = len(lists)//2 left = merge_sort(lists[:mid]...

2020-04-11 11:19:32 211

原创 排序算法之快排

快排思想: 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 def quicksort(v,begin,end): if(end<begin): return point = partition(v,begin,end) ...

2020-04-11 10:02:37 185

转载 非常好用的二分法题目模板那

https://leetcode-cn.com/problems/search-insert-position/solution/te-bie-hao-yong-de-er-fen-cha-fa-fa-mo-ban-python-/ leetcode上的一个博主分享总结的

2019-09-07 10:31:17 188

原创 pytorch图像数据处理和数据增强的几种方法

from torchvision import transforms as transforms transform = transforms.Compose([ transforms.RandomCrop(32, padding=4), #先四周填充0,在把图像随机裁剪成32*32 transforms.RandomHorizontalFlip(), #图像一半的概率翻转,一半的概率不翻转 ...

2019-06-13 15:56:59 4500

原创 定义一个网络 pytorch 学习(二)

import torch # 引入torch.nn并指定别名 import torch.nn as nn import torch.nn.functional as F #这个包中包含了神经网络中使用的一些常用函数 ''' PyTorch中已经为我们准备好了现成的网络模型, 只要继承nn.Module,并实现它的forward方法, PyTorch会根据autograd,自动实现backward...

2019-06-13 15:46:29 362

原创 557. 反转字符串中的单词 III python

给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例 1: 输入: “Let’s take LeetCode contest” 输出: “s’teL ekat edoCteeL tsetnoc” 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/...

2019-06-11 09:21:12 200

翻译 pytorch 构建一个神经网络

可以使用torch.nn包来构建神经网络. 你已知道autograd包,nn包依赖autograd包来定义模型并求导.一个nn.Module包含各个层和一个faward(input)方法,该方法返回output. 神经网络的典型训练过程如下: 定义神经网络模型,它有一些可学习的参数(或者权重); 在数据集上迭代; 通过神经网络处理输入; 计算损失(输出结果和正确值的差距大小) 将梯度反向传播会网...

2019-06-10 15:18:21 308

转载 pytorch AdaptivePool2d

再看代码时候看到了这个 顺便学习一下 self.pool1 = AdaptiveAvgPool2d(1) AdaptiveAvgPool2d(output_size) 自适应池化Adaptive Pooling是PyTorch的一种池化层,根据1D,2D,3D以及Max与Avg可分为六种形式。 自适应池化Adaptive Pooling与标准的Max/AvgPooling区别在于,自适应池化Ada...

2019-06-09 14:30:07 932

原创 485. 最大连续1的个数 python

给定一个二进制数组, 计算其中最大连续1的个数。 示例 1: 输入: [1,1,0,1,1,1] 输出: 3 解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3. 注意: 输入的数组只包含 0 和1。 输入数组的长度是正整数,且不超过 10,000。 我的代码: class Solution: def findMaxConsecutiveOnes(self, nums: ...

2019-06-05 20:48:43 368

原创 476. 数字的补数 python

给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。 注意: 给定的整数保证在32位带符号整数的范围内。 你可以假定二进制数不包含前导零位。 示例 1: 输入: 5 输出: 2 解释: 5的二进制表示为101(没有前导零位),其补数为010。所以你需要输出2。 示例 2: 输入: 1 输出: 0 解释: 1的二进制表示为1(没有前导零位),其补数为0。所以你需要输出0。 这道题一次通过的 ...

2019-06-05 10:01:22 229

原创 pytorch学习第一天 :

PyTorch是什么? 基于Python的科学计算包,服务于以下两种场景: 作为NumPy的替代品,可以使用GPU的强大计算能力 提供最大的灵活性和高速的深度学习研究平台 pytorch里面最核心的就是tensor x = torch.rand(5, 3) 5*3的随机tensor x = torch.zeros(5, 3, dtype=torch.long) 5*3的零矩阵,其中数据类型为lon...

2019-06-05 09:54:56 486

原创 语义分割之fcn和deeplab1,2,3,

这是总结的一个组会报告,小白参考了一些大神的图片和文字,非常感谢~ 图像语义分割 普通的图像分割,通常意味着传统语义分割,这个时期的图像分割,由于计算机计算能力有限,早期只能处理一些灰度图,后来才能处理rgb图,这个时期的分割主要是通过提取图片的低级特征,然后进行分割.这个阶段一般是非监督学习,分割出来的结果并没有语义的标注,换句话说,分割出来的东西并不知道是什么。 随后,随着计算能力的提高,人们...

2019-04-14 20:11:58 830

原创 mysql数据库之查询结果排序

1.条件逻辑 select ename,sal, case when sal &lt;= 2000 then ‘up’ when sal&gt;= 5000 then ‘over’ else ‘ok’ end as status from emp 2.以指定顺序返回查询结果 select ename,job,sal from emp where deptno = 10 order by sal a...

2018-12-15 19:23:48 1243

转载 关于核函数的想法

这篇博客非常方便理解 http://blog.sina.com.cn/s/blog_8c474641010173y0.html

2018-11-26 15:36:13 173

转载 随机森林填补法

随机森林,指的是利用多棵树对样本进行训练并预测的一种分类器。该分类器最早由Leo Breiman和Adele Cutler提出。简单来说,是一种bagging的思想,采用bootstrap,生成多棵树,CART(Classification And Regression Tree)构成的。对于每棵树,它们使用的训练集是从总的训练集中有放回采样出来的,这意味着,总的训练集中的有些样本可能多次出现在一...

2018-11-25 10:02:43 4165

空空如也

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

TA关注的人

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