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

原创 学习补充路径
acwing刷题 C++cyc各种面试知识点,针对java、刷题也是java知乎刷题经验,主刷前400,内含整理部分上述视频讲解,java需购买2800,太特么贵了,不买,可参考主刷哪些题...
2019-10-27 15:47:07
1207
原创 presto实操array, hive不支持此类操作
presto array:reduce操作:依次作用于元素,最终生成一个值transform操作,每个元素作操作,最终依旧是array需求:实现数组的相邻元素做差,特殊的,首个元素做差之后为0presto可以实现复杂的数组操作,但hive并不支持此类操作。****参考链接:Presto–数组函数和运算符presto 中的数组函数用法...
2022-05-06 17:26:03
2166
原创 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
2004
原创 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
595
原创 flink之slot、并行度、任务链
写在前面:不仅要做知识的搬运工,还要做知识的再加工,让印象更加深刻。参考链接:详情链接下面对参考链接的某一部分做更详细的说明,方便以后查看。图示6处的说明:1.slot中文意思"插槽"slot表示taskmanager可管理内存的一个固定大小的子集(默认均分)。比如taskmanager的管理内存是3GB,假如有两个slot,那么每个slot就仅仅有1.5GB内存可用。默认情况下,flink允许子任务共享slot,即使他们是不同任务的子任务(前提是他们来自同一个job),这样,一个slo
2021-01-11 16:41:09
1744
1
原创 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
6448
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
1092
原创 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
4311
原创 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
1380
原创 一文详解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
3512
原创 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
4064
10
原创 hive视图和with
有些博客中说with会读入内存,看博客的评论是这么说的,感觉有道理with和union联合使用数据量过大还是重新建个表比较好
2020-12-24 17:23:27
1314
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
2024
原创 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
1143
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
1656
原创 spark数据结构
spark计算框架为了能够进行高并发和高吞吐的数据处理,封装了三大数据结构,用于处理不同的应用场景,分别是:RDD:弹性分布式数据集累加器:分布式共享只写变量广播变量:分布式共享只读变量...
2020-12-11 14:35:12
1108
原创 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
1556
原创 scala偏函数——不和match一起使用的case序列
目前scala尚在刚敲代码的阶段(目前好像看懂了),等熟悉了之后再来看一看。另外喷一波csdn这操蛋的,转载太几把费劲了参考链接
2020-12-10 11:50:38
1093
原创 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
2411
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
1198
原创 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
2969
原创 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
1440
原创 win10设置锁屏+将锁屏模糊变清晰的方法
公司的win10配置锁屏是个大坑,尝试了很多方法,最后让我给蒙到了方法,很简单:点开图片---->点击右上角的三个点---->设置为------->设置为锁屏。将锁屏模糊变清晰的方法:方法二:注册表修改(适用于没有组策略的Win10家庭版)1、在“运行”框中下输入regedit,然后按回车键打开注册表编辑器。2、导航到注册表路径:KEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System3、右键单击右窗格,然后双击
2020-08-09 18:42:46
6523
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
1369
原创 详细一文教新手学会python爬虫
前言:从我身边来看,各行各业想学习python的人不在少数,学python之后就想实战一下,那么爬虫将是很好的提升的手段之一,进行数据挖掘需要数据,爬虫可以很好的从网上获取自己所需的数据。提醒:本教程所爬取的数据仅用于自己使用,无任何商业用途,若有侵权行为,请联系本人,本人可以删除,另外如果转载,请注明来源链接。两种方式:其一是采用框架scrapy框架的形式。其二是采用非框架的形式,具体是采用requests和etree。正题:首先介绍的是非框架的形式。这种形式便于部署到服务器上,定时批量的
2020-07-12 02:14:03
1273
原创 vim打开文件出现^M
原因:在windows状态下打开过文件,之后在linux下打开就会出现换行符出现问题解决方法:vim插入式状态下编辑 :%s/\r/\r/g
2020-06-27 17:59:13
1167
原创 会员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
1151
原创 马拉车(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
1396
原创 吹逼的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
1147
原创 152 乘积最大子数组, 处理的巧妙
连续的处理很巧妙,借用了一个res处理,常看class Solution: def maxProduct(self, nums: List[int]) -> int: # 存放到当前索引的最大值,最小值, 状态定义成二维的好做 # 不要搞dp = [[0, 0]] * 2里面的[0, 0] 就是一个了,变化会有干扰的, 是浅拷贝 dp...
2020-05-30 15:18:03
1074
原创 最长递增子序列(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
1263
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人