自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 学习补充路径

acwing刷题 C++cyc各种面试知识点,针对java、刷题也是java知乎刷题经验,主刷前400,内含整理部分上述视频讲解,java需购买2800,太特么贵了,不买,可参考主刷哪些题...

2019-10-27 15:47:07 1177

原创 推荐好文系列

推荐模型讲解&实现

2022-07-05 14:17:27 175 1

原创 presto实操array, hive不支持此类操作

presto array:reduce操作:依次作用于元素,最终生成一个值transform操作,每个元素作操作,最终依旧是array需求:实现数组的相邻元素做差,特殊的,首个元素做差之后为0presto可以实现复杂的数组操作,但hive并不支持此类操作。****参考链接:Presto–数组函数和运算符presto 中的数组函数用法...

2022-05-06 17:26:03 2024

原创 auc计算

参考链接单个用户的样本全是正样本或者全是负样本,auc就算不出来了,所以算gauc的时候要过滤这两类的case

2022-01-05 14:17:46 1621

原创 2021-08-11

IDEA常用快捷键参考链接

2021-08-11 14:54:52 94

原创 group by 去重之后与count连用的坑

需求:用presto跑sql的时候,发现group by去重之后直接count不是总条数,而是按照group by key的key分组之后的条数,万万没想到啊。因为语句执行顺序是group by 再count,所以按理说不应该,但是实际上这是一个需要注意的坑,最好在外面包一层。曾一度怀疑是presto和hive语法的差异,但实际上sql就有这么一个坑。下面用三个sql例子说明例子1:例子2:因为涉及到group by执行顺序在select 之前,所以没成想它会按照key分组计数,看来g

2021-03-31 20:02:52 1776

原创 常用hive语句

hive中对多行进行合并—collect_set&collect_list函数

2021-03-17 14:58:17 80

原创 shape(n,)和shape(1,n)

最后一张图,shape=(1,4) shape=4也会报错综上,fc.numeric_column中对应的shape=(4,)应该是4列的二维数组就可以,像[[1,2,3,4]]和[[2,3,4,5],[1,2,3,4]],不能是一维数组[1,2,3,4]

2021-03-05 14:21:54 546

原创 深度学习分布式小记

小菜鸡刚接触,慢慢来深度学习分布式训练实战一深度学习分布式训练实战二

2021-01-19 16:01:53 626

原创 flink之slot、并行度、任务链

写在前面:不仅要做知识的搬运工,还要做知识的再加工,让印象更加深刻。参考链接:详情链接下面对参考链接的某一部分做更详细的说明,方便以后查看。图示6处的说明:1.slot中文意思"插槽"slot表示taskmanager可管理内存的一个固定大小的子集(默认均分)。比如taskmanager的管理内存是3GB,假如有两个slot,那么每个slot就仅仅有1.5GB内存可用。默认情况下,flink允许子任务共享slot,即使他们是不同任务的子任务(前提是他们来自同一个job),这样,一个slo

2021-01-11 16:41:09 1638 1

原创 hive窗口函数

参考链接

2021-01-09 00:08:09 1147

原创 hive开窗函数中range和rows的区别

rows是物理窗口,是哪一行就是哪一行,与当前行的值(order by key的key的值)无关,只与排序后的行号相关range是逻辑窗口,与当前行的值有关(order by key的key的值)select id,sum(id) over(order by id) default_sum,sum(id) over(order by id range between unbounded preceding and current row) range_sum,sum(id) over(orde.

2021-01-08 19:54:29 5905 5

原创 hive企业级调优概述

文章目录1.Fetch抓取2.本地模式3.表的优化4.数据倾斜5.并行执行6.严格模式7.JVM的重用(慎用)8.推测执行(慎用)9.压缩10.执行计划1.Fetch抓取2.本地模式3.表的优化1.小表、大表Join(新版的hive已经做了优化,两者的先后顺序已经没有明显区别)2.大表Join大表空KEY过滤空KEY转换3.MapJoin4.Group By默认情况下,Map阶段的同一Key数据会分发给一个reduce,当一个key数据过大时就倾斜了,并不是所有的聚合操作都需

2021-01-08 19:06:59 1060

原创 spark.sql.shuffle.partitions和spark.default.parallelism的深入理解

stack overflow链接总结:1.spark.default.parallelism只对RDD有效,对sparksql(DataFrame、DataSet)无效2.spark.sql.shuffle.partitions对sparksql中的joins和aggregations有效,但其他的无效(对这种情况下,上述的两种配置都无效,我们应该怎么办呢?看第三点)3.我们可以使用repartition算子对dataframe进行重分区。...

2021-01-07 15:33:16 4089

原创 RDD的复用和RDD的持久化的区别

2021-01-06 21:45:54 1196

原创 spark 优化之详尽概述

文章目录前言一、spark性能调优1.常规性能调优2.算子调优3.Shuffle调优4.JVM调优二、spark数据倾斜1.数据倾斜的表现:2.定位数据倾斜:3.解决数据倾斜方案:三、spark故障排除前言spark性能调优spark数据倾斜spark故障排除一、spark性能调优1.常规性能调优最优资源配置RDD优化RDD复用RDD持久化RDD尽可能早的filter操作并行度调节广播变量Kryo序列化调节本地化等待时长2.算子调优mapPartitio

2021-01-06 18:51:55 1194

原创 一文详解spark与mr的不同,让你清楚的明白为什么spark比mr“快”

问题1描述:Spark计算比MapReduce快的根本原因在于DAG计算模型。一般而言,DAG相比Hadoop的MapReduce在大多数情况下可以减少shuffle次数(怎么体现?)解答:Spark的DAGScheduler相当于一个改进版的MapReduce,如果计算不涉及与其他节点进行数据交换,Spark可以在内存中一次性完成这些操作,也就是中间结果无须落盘,减少了磁盘IO的操作。但是,如果计算过程中涉及数据交换,Spark也是会把shuffle的数据写磁盘的!!!另外有同学提到,Spar

2021-01-05 18:31:36 2936

原创 sparkStreaming之transform的细节

val socketLineDStream: ReceiverInputDStream[String] = streamingContext.socketTextStream('linux1', 8888)// TODO Driver中执行一次// 例如val a = 1 在Driver中只执行一次// 首先看一下DStream的其他Transformations(转换)操作socketLineDStream.map({ case x => { // TODO Exec

2020-12-30 18:28:58 3860 10

原创 hive视图和with

有些博客中说with会读入内存,看博客的评论是这么说的,感觉有道理with和union联合使用数据量过大还是重新建个表比较好

2020-12-24 17:23:27 1272 2

原创 spark之sortBy分区数

spark的sortBy既是转换算子又是行动算子。scala> sc.makeRDD(1 to 5, 2).sortBy(x=>x, false, 4)res11: org.apache.spark.rdd.RDD[Int] = MapPartitionsRDD[13] at sortBy at <console>:25对应的UI界面是可以看到出现了一个job,而行动算子才会产生job。点进job去之后,看到下幅图。从图中可以看出,sortBy排序后产生的RDD的分区数

2020-12-21 17:51:48 1920

原创 spark累加器

累加器:分布式只写共享变量累加器是用来把Executor端变量信息聚合到Driver端。在Driver程序种定义的变量,在Executor端的每一个task都会得到这个变量的一份新的副本,每个task更新这些副本后,传回Driver端进行merge首先看一个不用累加器的案例scala> val dataRDD = sc.makeRDD(1 to 4, 2)dataRDD: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[5] a

2020-12-18 17:33:32 1110 1

原创 spark每个stage的任务数

一个SparkContext对应一个Application一个Application中会有多个action算子,也就是对应多个job一个job中会有多个宽依赖,就会产生宽依赖个数+1的stage数一个stage中会有多个分区,也就会有多个任务这里需要注意一点的是:同一个stage阶段也会出现分区数变少的情况,这种情况下如何判断分区数?答案是:看每个stage中最后一个RDD的分区个数就是当前stage的task数。scala> sc.makeRDD(1 to 5, 3).glom.coll

2020-12-14 14:45:49 1558

原创 spark数据结构

spark计算框架为了能够进行高并发和高吞吐的数据处理,封装了三大数据结构,用于处理不同的应用场景,分别是:RDD:弹性分布式数据集累加器:分布式共享只写变量广播变量:分布式共享只读变量...

2020-12-11 14:35:12 1076

原创 spark的groupBy是宽依赖

sc.makeRDD(1 to 8, 3).glom().collect()// 下面是第一行scala语句的结果// res21: Array[Array[Int]] = Array(Array(1, 2), Array(3, 4, 5), Array(6, 7, 8))sc.makeRDD(1 to 8, 3).groupBy(_%2).glom().collect()// 下面是第二行scala语句的结果// res23: Array[Array[(Int, Iterable[Int])]]

2020-12-10 18:24:22 1411

原创 scala偏函数——不和match一起使用的case序列

目前scala尚在刚敲代码的阶段(目前好像看懂了),等熟悉了之后再来看一看。另外喷一波csdn这操蛋的,转载太几把费劲了参考链接

2020-12-10 11:50:38 1066

原创 IDEA ctrl + 类点击进入的是 .class 而不是 .scala文件或者.java文件

问题使用IDEA ctrl点击方法时进入了.class文件 而不是 .java文件 或者.scala文件解决方法点击进去之后会看到顶端有个蓝条,蓝条上有两个选项:Download Sources 和 Choose Sources,选择 Download Sources ,因为idea是默认不自动下载源码(.java/.scala)文件的...

2020-12-09 15:08:58 2196 2

原创 Windows配置IDEA+java8+scala2.11+spark2.1.3+hadoop2.7.1+maven3.6.1

前言:win10的Ubuntu虽然是子系统,但是还是配置的是linux的,和win10系统还是不共通。所以需要单独配置。java安装scala安装spark以及hadoop的安装spark2.1.3配置hadoop单机版windows下spark的安装和运行...

2020-12-01 20:02:04 1155

原创 hive on spark 以及 hive on mr

--默认方式是mapreduceset hive.execution.engine=spark;select count(*) from sxs_comment_his;set hive.execution.engine=MR;select count(*) from sxs_comment_his;总结:hive默认方式是mapreduce,比on spark 慢从最后一张图可以看到一个箭头所覆盖的ip,可以通过这个ip访问YARN的UI界面,可能需要个跳板机,比如我司还需要登陆个wi

2020-11-18 14:19:28 2861

原创 hadoop生态圈资料精选

YARN的UI界面HADOOP集群搭建启航HADOOP系列

2020-10-20 20:57:19 1029

原创 pandas 实现按id分组拼接其他字段的string

两种方式apply()函数agg()函数代码及结果如下import pandas as pddata = pd.DataFrame({'id': [10001, 10001, 10002, 10002, 10002], 'skills': ['python', 'java', 'python', 'C++', 'java']})In [7]: dataOut[7]: id skills0 10001 python1 10001

2020-09-22 11:09:00 1373

原创 win10设置锁屏+将锁屏模糊变清晰的方法

公司的win10配置锁屏是个大坑,尝试了很多方法,最后让我给蒙到了方法,很简单:点开图片---->点击右上角的三个点---->设置为------->设置为锁屏。将锁屏模糊变清晰的方法:方法二:注册表修改(适用于没有组策略的Win10家庭版)1、在“运行”框中下输入regedit,然后按回车键打开注册表编辑器。2、导航到注册表路径:KEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System3、右键单击右窗格,然后双击

2020-08-09 18:42:46 5503 1

原创 jdk8+scala2.11+spark2.1.3+maven3.6.1+hadoop2.7.1安装指南(Linux)

参考链接:spark和scala版本对应关系jdk安装指南scala安装指南spark安装存放目录以及profile设置类似于scala安装,没有参照spark安装指南里的spark安装指南欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功

2020-07-17 14:52:32 1308

原创 详细一文教新手学会python爬虫

前言:从我身边来看,各行各业想学习python的人不在少数,学python之后就想实战一下,那么爬虫将是很好的提升的手段之一,进行数据挖掘需要数据,爬虫可以很好的从网上获取自己所需的数据。提醒:本教程所爬取的数据仅用于自己使用,无任何商业用途,若有侵权行为,请联系本人,本人可以删除,另外如果转载,请注明来源链接。两种方式:其一是采用框架scrapy框架的形式。其二是采用非框架的形式,具体是采用requests和etree。正题:首先介绍的是非框架的形式。这种形式便于部署到服务器上,定时批量的

2020-07-12 02:14:03 1240

原创 vim打开文件出现^M

原因:在windows状态下打开过文件,之后在linux下打开就会出现换行符出现问题解决方法:vim插入式状态下编辑 :%s/\r/\r/g

2020-06-27 17:59:13 1126

原创 会员333Tleetcode 树形dp

给定一个二叉树,找到其中最大的二叉搜索树(BST)子树,其中最大指的是子树节点数最多的。注意:子树必须包含其所有后代。示例:输入: [10,5,15,1,8,null,7]10/ \5 15/ \ \1 8 7输出: 3解释: 高亮部分为最大的 BST 子树。返回值 3 在这个样例中为子树大小。进阶:你能想出用 O(n) 的时间复杂度解决这个问题吗cla...

2020-05-30 15:19:43 1116

原创 马拉车(manacher),KMP

manacher: '''这里面是利用manacher进一步做从后面添加最少的字串使其成为回文串,leetcode214T是在前面''' def longestPalindrome(self, s: str) -> str: def manacherStr(Str) -> List[str]: res = [0] * (len(S...

2020-05-30 15:19:16 1355

原创 吹逼的top-k问题

BFPRT个人感觉是topk问题最吹逼的算法,最坏时间复杂度都是O(n)而快速选择算法的时间复杂度平均是O(n),最坏仍是O(n^2)好像上面两个的区别都是在pivot的选择上,快速选择是因为只考虑一半的元素。以上两个+快排+归并,都得搞懂才能去面试参考链接:BFPRT :https://zhuanlan.zhihu.com/p/31498036快速选择:https://zhuanlan...

2020-05-30 15:18:39 1115

原创 152 乘积最大子数组, 处理的巧妙

连续的处理很巧妙,借用了一个res处理,常看class Solution: def maxProduct(self, nums: List[int]) -> int: # 存放到当前索引的最大值,最小值, 状态定义成二维的好做 # 不要搞dp = [[0, 0]] * 2里面的[0, 0] 就是一个了,变化会有干扰的, 是浅拷贝 dp...

2020-05-30 15:18:03 1043

原创 最长递增子序列(LIS)不连续

很牛的一个方法,实现也牛逼‘’’给的实例[10, 11, 12, 13, 1, 2, 3, 4, 5]跟单调栈还有一点不同[10, 0, 0, 0, 0, 0, 0, 0, 0][10, 11, 0, 0, 0, 0, 0, 0, 0][10, 11, 12, 0, 0, 0, 0, 0, 0][10, 11, 12, 13, 0, 0, 0, 0, 0]# 单调栈是要全出来,而...

2020-05-30 15:17:13 1210

原创 lucene&solr

用java?视频链接

2019-11-24 16:04:49 1093

空空如也

空空如也

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

TA关注的人

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