自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(239)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

转载 【转载】Spark 分布式/单机执行代码认知纠正

Spark 分布式/单机执行代码认知纠正

2022-08-07 16:59:32 402 1

原创 解决pyspark环境下GraphFrames报错问题

Spark图计算实战:在pyspark环境下使用GraphFrames库。

2022-08-07 16:41:47 1110

原创 解决使用bert encoder出现的一系列问题

本篇文章仅是针对自己最近项目中遇到的问题进行梳理沉淀,并不能复现解决相同的问题。或者提供一个解决问题的思路,尝试分析原始数据是否符合模型要求

2022-07-22 23:53:55 2812

原创 Hive Explain 执行计划参数分析

执行计划codeexplain--your sql codeselect *from xxx.xxxx as xleft join yyy.yyyy as yon x.a=y.bgroup by c,dhaving eorder by flimit 1000 举例拿一个实际生产中的复杂sql为例,涉及多表join,开窗函数,子查询,多维分组聚合grouping sets的执行计划为例,可以看出:stage之间的依赖关系各个stage的执行计划sql语

2022-05-17 21:48:11 445

原创 机器翻译实战(英译汉)Transformer代码学习详解

任务目标基于Transformer实现英语翻译汉语。如有疏忽请多指教数据Hi. 嗨。Hi. 你好。Run. 你用跑的。Wait! 等等!Hello! 你好。I try. 让我来。I won! 我赢了。Oh no! 不会吧。Cheers! 乾杯!Got it? 你懂了吗?He ran. 他跑了。Hop in. 跳进来。I lost. 我迷失了。I quit. 我退出。I'm OK. 我沒事。Listen. 听着。No way! 不可能!No way! 没门!Reall

2022-05-04 19:45:03 13192 13

原创 VScode for m1配置 以及 解决non-aggregate type ‘vector<int>‘ cannot be initialized with an initializer list

VScode for mac m1配置C++环境参考解决C++编译,non-aggregate type ‘vector’ cannot be initialized with an initializer list的问题问题发现写代码过程中,发现在vector初始化时,使用大括号初始化无法通过编译vector<int> vec = {1, 2, 3, 4, 5};报错:non-aggregate type ‘vector’ cannot be initialized with a

2022-04-17 12:01:12 5533 7

原创 LeetCode Top100特训

两数相加链接个人思路:将链表1转换为num1,链表2转换为num2,两数相加后再转换回链表。存在的问题:链表长度超过long long数字范围,无法做加法题解:此题需要模拟加法需要注意:进位的问题,最后一位进位的问题链表的遍历,新建链表,返回链表头结点ListNode* head = nullptr;ListNode* node = nullptr;if(head == nullptr){ head = node = new ListNode(cur);}else{ n

2022-04-09 11:31:41 826

原创 【文献阅读】Pre-Training With Whole Word Masking for Chinese BERT

Cui Y, Che W, Liu T, et al. Pre-training with whole word masking for chinese bert[J]. IEEE/ACM Transactions on Audio, Speech, and Language Processing, 2021, 29: 3504-3514.Abstract在本文中,我们旨在首先介绍中文 BERT 的全词掩蔽(wwm)策略,以及一系列中文预训练语言模型。然后我们还提出了一个简单但有效的模型,称为 MacB

2022-03-31 18:39:39 1729

原创 【文献阅读】StyleBERT: Chinese pretraining by font style information

Abstract因此在本文中,我们提出了中文预训练语言模型 StyleBERT,它结合了以下嵌入信息来增强语言模型的 savvy,例如单词、拼音、五笔和chaizi(拆字)。Introduction大规模预训练模型BERT文本分类的应用Nils Reimers and Iryna Gurevych. Sentence-bert: Sentence embeddings using siamese bert-networks, 2019.Chi Sun, Xipeng Qiu, Yige Xu

2022-03-23 16:05:09 1432

原创 【文献阅读】Microblog sentiment analysis via embedding social contexts into an attentive LSTM

Yang J, Zou X, Zhang W, et al. Microblog sentiment analysis via embedding social contexts into an attentive LSTM[J]. Engineering Applications of Artificial Intelligence, 2021, 97: 104048.Abstract传统的微博情感分析方法往往假设微博是独立同分布的,忽略了微博是网络数据这一事实这些方法是基于内容的方法,因为它们不能

2022-03-23 16:02:38 1408

原创 【文献阅读】Graph Convolutional Networks for Text Classification

我们基于单词共现和文档单词关系为语料库构建单个文本图,然后为语料库学习文本图卷积网络(Text GCN)我们的 Text GCN 使用单词和文档的 one-hot 表示进行初始化,然后在已知文档类标签的监督下共同学习单词和文档的嵌入。Introduction这些深度学习模型可以很好地捕捉局部连续单词序列中的语义和句法信息,但可能会忽略携带不连续和长的语料库中的全局单词共现。距离语义(Peng et al. 2018)。图神经网络在被认为具有丰富关系结构的任务中非常有效,并且可以在图嵌入中保留图的全局

2022-03-21 08:48:45 495

原创 【文献阅读】Glyce: Glyph-vectors for Chinese Character Representations

Y uxian Meng, Wei Wu, Fei Wang, Xiaoya Li, Ping Nie, Fan Yin, Muyu Li, Qinghong Han, Xiaofei Sun, and Jiwei Li. 2019. Glyce: Glyph-vectors for chinese character representations. In Advances in Neural Information Processing Systems, volume 32, pages 2746

2022-03-21 08:46:28 396

原创 【文献阅读】ERNIE: Enhanced Representation through Knowledge Integration

Sun Y, Wang S, Li Y, et al. Ernie: Enhanced representation through knowledge integration[J]. arXiv preprint arXiv:1904.09223, 2019.Abstract知识增强的新语言表示模型ERNIE 旨在学习通过知识掩蔽策略增强的语言表示,包括实体级掩蔽和短语级掩蔽。实体级策略屏蔽了通常由多个单词组成的实体。 短语级策略隐藏了整个短语,它由几个单词组成一个概念单元。Introducti

2022-03-19 19:29:02 1571

原创 【文献阅读】Convolutional Sequence to Sequence Learning

Introduction卷积神经网络在序列建模中不太常见与循环层相比,卷积为固定大小的上下文创建表示,然而,网络的有效上下文大小可以很容易地通过将多个层堆叠在一起而变得更大解决方案:我们提出了一种完全卷积的序列到序列建模架构。 我们的模型配备了门控线性单元 (Dauphin et al., 2016) 和残差连接 (He et al., 2015a)。 我们还在每个解码器层中使用了注意力,并证明每个注意力层只会增加微不足道的开销。RNN-Seq2Seq已经提出了各种编码器-解码器架构,它们的主要

2022-03-19 19:26:45 806

原创 【文献阅读】ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information

Abstract最近的中文预训练模型忽略了中文特有的两个重要方面:字形和拼音,它们携带重要的句法和语义信息,用于语言理解我们提出了 ChineseBERT,它将汉字的字形和拼音信息结合到语言模型预训练中字形:汉字的不同字体字音:汉语拼音(处理多音字)Introduction由于预训练模型最初是为英语设计的,因此在当前的大规模预训练中缺少两个特定于中文的重要方面:基于字形的信息和基于拼音的信息对于前者,使中文与英语、德语等语言区分开来的一个关键方面是汉语是一种表意语言。 字符的语标对语义信息进行

2022-03-16 11:03:26 1309

原创 【LeetCode】【哈希表+双向链表】LRU 缓存 思路解析和代码

LRU 缓存题目链接个人思路采用C++的容器,没有手撕双向链表题意实现LRU的初始化,读取,写入,分别对应LRUCache()、get()、put()用到的理论和技术双向链表list的插入、删除、访问、迭代器、auto关键字map,插入、删除、访问类的初始化LRU机制思路LRU(Least Recently Used),最近最少使用算法,是页面置换算法的一种也叫最近最久未使用算法LRUCache():初始化内存的大小get():获取内存中的数据,若不存在返回-1put(

2022-03-12 18:44:53 951

转载 【转载】list容器用法详解

尊重原创->原创博客链接(吐槽下博客上转发这篇博客的人不标明出处...找原创找了好久呜呜呜) 1.关于list容器 list是一种序列式容器。list容器完成的功能实际上和数据结构中的双向链表是极其相似的,list中的数据元素是通过链表指针串连成逻辑意义上的线性表,也就是list也具有链表的主要优点,即:在链表的任一位置进行元素的插入、删除操作都是快速的。list的实现大概是这样的:list的每...

2022-03-12 18:05:03 1735

原创 sql/hql的代码积累与优化

在写数仓过程中,积累了一些sql代码优化技巧,总结分享一下(大多是hql代码)优化使用count(1) 替代 count(*)一、从执行效果来看count(1) and count():基本没差别count()包括了所有的列,相当于行数,在统计结果的时候,不会忽略NULLcount(1) and count(列名):count(1) 会统计表中的所有的记录数,不会忽略NULL,包含字段为null 的记录。count(列名) 会统计该列字段在表中出现的次数,会忽略字段为null 的情

2021-10-24 16:11:52 444

原创 Pyspark-数据导入任务从374min降到7min

数据量8000w,存储空间5G。使用Venus平台,将hive中的数据导入到后台Mysql中,采用Pyspark组件,通过参数调整将任务执行时间从374min降低到7min背景任务是在Venus平台上,将hive中增量数据(8000w条/天)导入到后台Mysql中,并实现每天例行化,但由于数据量过大,导致spark写入效率极低优化思路Pyspark代码from pyspark.sql import SparkSessionfrom pyspark import SparkContextimpo

2021-09-01 22:10:25 291

原创 【数据挖掘】阿里云天池-数据挖掘入门-二手车价格预测

题目赛题以预测二手车的交易价格为任务,数据集报名后可见并可下载,该数据来自某交易平台的二手车交易记录,总数据量超过40w,包含31列变量信息,其中15列为匿名变量。为了保证比赛的公平性,将会从中抽取15万条作为训练集,5万条作为测试集A,5万条作为测试集B,同时会对name、model、brand和regionCode等信息进行脱敏。题目链接题目分析数据特征:数据特征共有31个特征,类别特征10个,数值特征21个,其中15个匿名特征均为数值特征数据量:训练集包含15万条数据,测试集包含5万条数据

2021-06-13 14:56:51 2497

原创 Intellij idea 查看源码&注释源码方法--以Spark源码为例

问题在使用Intellij idea查看源码时,源码的文件是只读的,文件下脚标有“锁”图标,因此无法对其进行注释实验环境Intellij idea 2018.03以Spark3.0为例步骤添加maven依赖 <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.12</arti

2021-05-15 19:34:59 1439

原创 【Spark源码】RDD shuffle溢写&归并排序

RDD shuffle溢写核心代码if (shouldSpill) { _spillCount += 1 logSpillage(currentMemory) //溢写,查看ExternalSorter.scala文件第239行 spill(collection) _elementsRead = 0 _memoryBytesSpilled += currentMemory releaseMemory() //溢写之后释放内存}分析代码步骤在sortshuffle

2021-05-15 19:17:51 489

原创 【Spark源码】RDD shuffle 读磁盘与写磁盘

RDD shuffleshuffle阶段涉及磁盘读写,以图示为例,紫色RDD与ShuffleRDD之间会进行磁盘读写操作,紫色RDD进行磁盘写操作,ShuffleRDD进行磁盘读操作写磁盘读磁盘核心代码//读磁盘 override def compute(split: Partition, context: TaskContext): Iterator[(K, C)] = { val dep = dependencies.head.asInstanceOf[ShuffleDepe

2021-05-15 17:37:50 526

原创 【Spark源码】RDD任务调度&任务执行

工具环境Intellij Idea 2018.03spark3.0.0<dependencies> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.12</artifactId> <version>3.0.0</version> </d

2021-05-13 18:52:45 250

原创 【Spark】Spark Core学习笔记

Spark CoreSpark Core实现了Spark的基本功能,包括:任务调度,内存管理,错误回复,与存储系统交互等模块。其中包括三大数据结构:RDD:弹性分布式数据集累加器:分布式共享只写变量广播变量:分布式共享只读变量RDDRDD特性- - 源码RDD.scala文件,可以从makeRDD() -> RDD -> RDD.scala找到 * Internally, each RDD is characterized by five main properties:

2021-05-12 14:43:06 177

原创 【Spark源码】RDD阶段划分&任务划分

工具环境Intellij Idea 2018.03spark3.0.0<dependencies> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.12</artifactId> <version>3.0.0</version> </d

2021-05-11 12:30:01 712 1

原创 【Spark源码】RDD序列化

RDD序列化序列化的目的是为了在网络中传输从计算的角度, 算子以外的代码都是在Driver 端执行, 算子里面的代码都是在 Executor 端执行。因此会导致算子内经常会用到算子外的数据,因此形成了闭包的效果。在调用算子外的数据时,数据需要在Driver和Executor中间通过网络进行传输,因此需要序列化工具环境Intellij Idea 2018.03spark3.0.0<dependencies> <dependency> &l

2021-05-10 17:23:46 183

原创 【Spark源码】RDD分区&RDD分区数据分配

RDD分区创建RDD时自定义分区数量根据计算机Core个数确定默认分区数量核心代码override def defaultParallelism(): Int = scheduler.conf.getInt("spark.default.parallelism", totalCores)首选SparkConf配置的spark.default.parallelism分区数量如果没有配置,则采用计算机的核心数量totalCores作为分区数量分析源码步骤程序- -分区源码入口

2021-05-08 20:28:18 275 1

原创 【Spark】部署环境&运行架构

部署环境Spark分为3种部署环境:Local本地模式Standalone独立部署模式基于Yarn混合部署模式几点补充:Standalone独立部署模式是经典的Master-Slaver模式,可由自身提供计算资源,无需其他框架提供资源Master和Slaver是针对Standalone的概念引入Yarn的原因:Spark主要是计算框架,而不是资源调度的框架配置Spark历史服务器的细节问题配置Spark历史服务器,需要在spark-env.sh中指定历史服务器日志存储路径(hdf

2021-05-07 17:24:38 168

原创 【Spark】适用场景&优缺点

Spark的适用场景需要快速处理大数据。Hadoop常用于解决高吞吐,批量处理,离线计算结果的业务场景,如果需要实时,即对数据处理速度有一定要求的,Hadoop显然不符合;Spark通过内存计算能力可以极大的提高大数据处理速度适用于需要多次操作特定数据集的应用场合数据量不大,但要求实时统计分析需求基于大数据的SQL查询、流式计算,图计算,机器学习的场景支持Java,Scala,Python,R语言的场景Spark的特点快速处理能力,基于内存易于使用,支持多种语言支持SQL查询,支持S

2021-05-06 22:56:47 7205

原创 【C++11】unique_ptr

目的一块内存只能一个独占智能指针管理其他都与shared_ptr类似表示方式unique_ptr的初始化//构造函数初始化unique_ptr<int> ptr1(new int(10));//移动初始化unique_ptr<int> ptr2 = move(ptr1);//函数返回值(将亡值)初始化unique_ptr<int> ptr3 = init();//reset初始化ptr3.reset(new int(250));uni

2021-04-25 20:33:01 404

原创 【C++11】weak_ptr

目的weak_ptr只负责监测shared_ptr的内存资源,不参与管理,因此不会增加引用计数weak_ptr处理shared_ptr中因使用不当造成的内存泄漏问题a. 同一原始地址不能初始化多个共享智能指针b. 函数不能返回管理了this的共享智能指针对象c. 共享智能指针不能嵌套循环引用表示方式弱指针初始化shared_ptr<int> sp(new int(22));weak_ptr<int> wp1;weak_ptr<int> wp2(

2021-04-25 19:57:28 241

原创 【C++11】shared_ptr

目的多个智能指针共同管理同一块内存其核心是引用计数,每使用它一次,内部引用计数加1,每析构一次内部的引用计数减1,减为0时,删除所指向的堆内存表示方式共享智能指针的初始化a. 共享智能指针构造函数shared<类型> 智能指针名(内存)int *ptr = new int(500);shared_ptr<int> ptr1(ptr);//指向int型内存,shared<类型> 智能指针名(内存)shared_ptr<char> ptr2(

2021-04-25 16:36:42 285 1

原创 【C++11】右值引用&转移&完美转发

目的转移move()是为了将左值转换为右值完美转发forward()是为了让实参保持其左值/右值的属性移动语义:将对象的状态或者所有权从一个对象转移到另一个对象,只有转移,没有拷贝。右值引用,move()和移动构造函数都具有移动语义移动语义可以将资源(堆、系统对象等)通过浅拷贝从一个对象转移到另一个对象这样就能减少不必要的临时对象的创建、拷贝以及销毁,可以大幅提高 C++ 应用程序的性能。作者: 苏丙榅链接: https://subingwen.cn/cpp/rvalue-referenc

2021-04-24 20:14:32 308

原创 【C++11】lambda表达式

目的匿名函数更加直观,想要了解一个函数的内部实现不用再从主函数中的函数调用再去观察函数体简洁灵活,避免了代码膨胀和功能分散表示方式[capture](params) opt -> ret {body;};//capture用于捕获外部变量,即不属于匿名函数中的变量,按值捕获和按引用捕获//params表示匿名函数形参//opt:一共两种,mutable可以修改按值传递进来的拷贝,exception抛异常//ret:返回值类型//body:函数体细节按值捕获的变量是只读的,

2021-04-24 11:05:54 166

原创 【C++11】基于非范围的for循环-枚举loop方式

目的不以开头和结尾进行遍历,而是以容器中的元素进行枚举并不能代替传统for循环,二者之间各有优缺点表示方式vector<string> text;for(word:text){}细节使用引用避免复制副本造成的低效但引用会造成修改原数据的困扰,可以增加const声明,标记为变量只读细节一:枚举loop方式中,对于关系容器得到的是pair对象;传统方式得到的是迭代器细节二:枚举loop方式中,关系容器的key值和set中的元素都是只读类型的,不能做修改细节三:枚举l

2021-04-23 22:07:47 565

原创 【C++11】委托构造函数和继承构造函数

目的二者都是用来优化,简化构造函数代码编写的委托构造函数是同一个类中不同构造函数之间的复用继承构造函数是派生类对父类构造函数的复用表示方式//委托函数优化,优化冗余代码class Base1{public: Base1(){} Base1(int max1){ this->bmax = max1 > 0 ? max1 : 100; } Base1(int max1, int min1):Base1(max1){ t

2021-04-23 15:14:48 316

原创 【C++11】using

目的定义别名声明命名空间表示方式//声明命名空间using namespace std;//using 新的类型 = 旧的类型; 可读性与typedef相差无几using ll = long long;//using 定义函数指针func_ptr,凸显using的可读性using func_ptr = int(*)(int, double);//返回值是int,两个参数int和double//模板的别名template<typename T>using mymap =

2021-04-23 14:18:03 329

原创 【C++11】final && override

目的final为了表明在继承关系中,被final声明的函数和类不能再被子类继承,也就是到此为止了override为了表明在继承关系中,被override声明的函数表示是父类函数的重写,目的是实现多态表示方式class Child final:public Basevoid test() final{ cout << "Child test" << endl;}void test() override{ cout << "Grand t

2021-04-22 21:14:06 123

原创 【C++11】constexptr

引言先明确const关键字,常量的引用,常量传参const修饰的常量属于右值区分左值和右值  C/C++中的变量有左值和右值之分,他们的区别主要如下:(1)左值可以放在赋值号 = 的左右两边,右值只能放在赋值号 = 的右边(2)在C语言中,有名字的变量即为左值;而函数的运行结果或表达式中间变量即为右值(3)对于内嵌类型(基本类型,即built-in types),右值是不可以被更改的,也不可以被const,volatile所修饰;  对于自定义类型,右值却可以通过它的成员函数来进行修改

2021-04-21 20:08:44 4084

空空如也

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

TA关注的人

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