自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

这个问题是在新建用户设置密码的时候遇见的问题,翻译过来就是设置的密码不符合要求,需要设置一个符合要求的密码,但是也是可以自行更改的。3、validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数;6、validate_password_special_char_count 整个密码中至少要包含特殊字符的个数;4、validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数;3、将数据库表的权限授予用户。

2024-03-14 10:22:33 338

原创 DataX实现数据同步(分区处理)

3、这里有一个坑,就是你在指明分区路径的时候,这时候分区是已经存在了的,不然DataX就会报错没有这个路径,可以自己先创建分区,由于是按照每日新增数据来进行分区管理的,因此这里可以手动创建分区。之前使用DataX来实现数据的同步,只是将数据送到了指定的位置,但是并没有分区处理,这样当数据多了的时候就不是可以很方便的管理数据了,因此,可以增设一个分区来对数据进行处理。2、接下来就是进行json文件的配置了,跟我上一篇的配置大同小异,但是在路径中稍有变动。这个时候在使用DataX的时候就不会再报错了。

2024-02-19 17:02:04 503

原创 DateX实现数据的流转

在MySQL中存在数据表和数据,现在需要将这部分数据导入到HDFS,使用DateX,在MySQL中以tbl_logs表为例,表中有数据37W+,根据需求,在Linux中创建文档,补充配置。由于现在公司弃用了Sqoop转而使用DateX来实现数据的端到端的传输,因此我对DateX进行了调研以及来解决数据从起点到端点的传输,以Mysql到HDFS为例。3、同名前缀:appen模式下。1、读流程reader。2、写流程writer。

2024-02-06 10:49:07 1578 1

原创 DataX遇到的Python问题和错误解决

造成这样的原因是Python版本的差异造成的,2版本的python在输出时候可以不加 "()",但是3版本的python在输出的时候必须要加 "()",由于我是用的Anaconda,所以我直接在Aanconda的bin目录下直接更改了软连接的指向,注意:不是在Anaconde的虚拟环境中的bin目录更改的指向,而是在Anaconda的自身bin目录下更改的软连接指向。输出以上内容即DataX运行成功。

2024-02-01 18:05:18 479 1

原创 DS调度出现 SQL task prepareStatementAndBind error 错误

又在GitHub上问题查询得到可能是 "hive.server2.thrift.max.worker.threads" and "hive.metastore.client.socket.timeout"这两个的配置问题。hive.server2.thrift.max.worker.threads:在这里我将DS阈值设置到了1000,原来是500,因为可能跑的脚本多了,资源不释放什么的,调整完成之后保存重启。在对以上两个配置调整完成之后,完美的解决了DS跑脚本出错的问题。修改配置之后,都客户以执行成功。

2024-01-03 17:00:14 886 4

原创 SQL互粉问题

本以为自己已经会了很多的SQL类型题,但是前两天朋友面试时候问了一个互粉的SQL问题。第三题:(这个是最让我头疼的,就是因为这个我才知道有了 recursive 递归方法)select round((total - cnt)/2,0) as '互关'第三种方法我是用递归求解的,但是电脑性能跟不上,运行了5分钟还是运行不出来。# todo 法3(可能是递归写的有问题,一直卡在运行界面)求出2023年的截止到每一天的总的互粉用户数量。# 在这里边最重要的是使用递归求解连续日期。第一题:(总共想出来了三种方法)

2023-11-14 21:01:19 62 1

原创 WITH RECURSIVE 递归求解层次问题

all 上方),第二部分是递归部分(union all下方)。递归部分第一次进入的时候使用非递归部分传递过来的参数,也就是第一行的数据值,进而得到第二行数据值,然后根据第二行数据值得到第三行数据值。以下是一个示例的演示数据,包含了20条记录,分别代表不同的区域(省、市、区)。同时,我也提供了一个使用。的 SQL 查询,可以获取每个区域的 id、名字以及上级区域的 pid。总结:with recursive 由两部分组成。第一部分是非递归部分(现在,让我们来看一下如何使用。

2023-11-13 20:43:32 80 2

原创 Linux操作指令

pwd显示当前路径ls查看目录下的内容-a显示所有的隐藏的文件-h以人性化的形式展现-r递归展示当前目录下的所有子目录内容cd改变所在目录cat显示文件的内容grep在文件中查找某字符,通常跟管道符连用(将上一次的输出作为下一次的输入)例如:在Teacher.txt查找内容在指定文件中查找-n加行号cp:复制文件-i:互动:如果文件将覆盖目标中的文件,他会提示确认文件远程复制:scp -r 源文件 [email protected]:路径。

2023-11-07 21:46:52 28 1

原创 百度面SQL试题--求N日留存率

求次日、七日的用户留存率 给的数据中是没有重复数据的,但是当做这种题的时候我的第一反应就是要先去重,因为一个用户一天可能会登录多次,但是只能计数一次,因此我又自己给他加上了一条数据,这样可以将题目更加的完善。在做的时候我是分三步完成的:

2023-11-05 20:50:50 22 1

原创 K-Means算法

最近在进行机器学习的时候重新复习了一遍大学阶段学习过的一个算法,大名鼎鼎的K-Means算法,作为机器学习的一个入门级算法,在重新复习完之后,我又有了新的理解与感悟。在 R(regular)/F(frequence)/E(engage) 的模型上进行K-Means的使用,即基于以往用户的 频率、周期、参与程度进行预测,给该用户打上价值标签。在我最近做的一个用户互动参与画像的分析中,我便使用到了K-Means算法来对用户的价值进行分类, 来判断该用户的价值高低以便后续针对性的对其精力的投放。

2023-10-31 21:28:13 1664 11

原创 SQL 开窗函数

sql中不仅仅有聚合函数,还有开窗函数。然而在使用聚合函数的时候必须要对数据进行group by分组,否则聚合函数无法执行,但是有时候当不希望对整体数据进行分组而又想达到一些分组才能够实现的效果时候,开窗函数就提供了这样的操作。在常用的开窗函数中,有RANK()、DENSE_RANK()、ROW_NUMBER()这三个,尤其是在对连续日期计算的时候效果最佳,但是这三者是有些许的区别的。

2023-10-30 16:23:29 16 1

原创 CombineByKey

todo 分区内操作 # todo x相当于[value,1]==>('a',12)==>[12,1];y代表相同 key 的 value ==>('a',3)==> y=3。第三个函数是将不同分区内的所有相同的value的值添加到一块并计数。第一个函数是将所有的value转换成[value,1]的形式。# todo 分区间操作 # todo 计算分区间的值:将分区间的相同 key 的 value 都添加到一块。# todo 取出所有的(key,value)中的 value ,只取 value。

2023-10-17 08:46:05 18 1

原创 TextFile与WholeTextFile对比

2、textfile读取文件是将文件里的数据按行读取,文件的每一行 相当于List列表中以 “,”号 隔开的一个元素,因此可以在每个partition中用for i in data的形式遍历处理Array里的数据;而wholeTextFile读取文件则是读取[文件路径,文件内容]的形式,返回的是[(K1, V1), (K2, V2)...]的形式,其中K是文件路径,V是文件内容。1、textfile的分区数量跟文件的个数相关:分区数量=小文件的个数,而wholeTextFile的分区数量是默认的两个分区。

2023-10-16 21:17:49 75 1

原创 GroupByKey和ReduceByKey对比

在shuffle操作上,ReduceByKey会在shuffle之前发生提前聚合,这样会大量的减少落盘的数据量,提高性能与效率,在开发中也是更偏向于使用ReduceByKey.然而GroupByKey不会在分区内提前聚合,只会在发生shuffle的时候进行分组聚合,并且还要搭配mapValues()使用,将需要的操作转到mapValues()里。例:Examples:使用reduceByKey统计词频个数reduceByKey: 将数据按照value值累加(不是计数)

2023-10-16 20:32:45 118 1

原创 Spark中的RDD算子(二:Action)

用来指定分区的加减,如果加减的分区超过了第一开始指定的分区数,coalesce()指定的分区数不生效,需要开启Fasle使分区重新shuffle:coalesce(self, numPartitions, shuffle=False)计算所有分区的结果返回一个值,fold内含有自然值,在进行operator操作时候,会在分区内与分区间进行fold操作。( zeroValue:自然值, seqOp:分区内, combOp:分区间)=fold(自然值,分区内分区间)fold: 等价于 aggregate。

2023-10-09 20:08:07 33 1

原创 Spark中的RDD算子(一:TransFormation)

把满足条件的筛选出来,去掉不满足条件的: file_rdd.filter(lambda line: len(line.strip()) > 0)数据扁平化,以空格字符分割将数据扁平化,搭配函数使用:flatMap(lambda a: re.split('\s+', a))括号内接数据类型:列表、元组等,将数据[('b', [2, 4]), ('c', [3]), ('a', [1])]这样输出。将数据转化成 (key,value)键值对的格式 :map(lambda x: (x, 1))

2023-10-09 19:57:12 35 1

原创 HIVE索引优化

众所周知,当数据量大了的时候跑MapReduce任务是很容易崩掉的,但是当将数据量大的SQL语句转成MapReduce任务时候,很容易报 code2 的错误,就是内存不足,这时候我选择了对hive的数据表进行调优,主要使用行组索引与布隆索引这两种方式。使用:保证建表时侯使用ORC的存储格式 stored as ORC ,并开启行组索引TBLPROPERTIES ( 'orc.compress'='SNAPPY', -- 开启行组索引 'orc.create.index'='true' )。

2023-09-20 17:29:06 68 1

原创 Shell脚本自动化

今天在写shell脚本实现自动化的时候,出现了一个让我无比恼恨的小问题,代码检查了一遍又一遍,甚至把编码集都尝试更换了,还是一直报错,最后无奈,一行一行的重写对照,结果你猜怎么着,问题是我没有把 '+' 跟后边的参数连在一起。对于shell脚本中的时间的改变,设置成可以手动输入和选择使用系统时间,下面的一个脚本是从Mysql到ODS的增量导入,诸如此类还有ODS到DWD的增量、DWD到DWB的增量等等。最终效果是使用了五个全量脚本、五个增量脚本配合Oozie实现了脚本自动化的效果。

2023-09-20 17:11:46 64 1

原创 拉链表的使用分析

2、原表 t1 和 新增数据 t2 关联的上且原表 t2.end_date = '9999-99-99',此时的数据为最新的历史数据,只需要把历史数据中的end_date 改为 前一天数据 (例:今天是9-4,想要处理昨天的历史数据,因此前天结束的历史数据(前提是关联的上且end_date为默认值'9999-99-99')将结束日期记为-1 day)1、将数据加载到MySQL数据库中,在使用sqoop加载到ods层,再将ods层的数据insert into 到dw层,完成全量数据的加载。

2023-09-09 20:29:25 52 1

原创 HIVE SQL相关操作

刚开始学数仓时候都被一直灌输HIVE数仓不是数据库而是数据仓库,既不产生数据也不存储数据,只分析数据,起初不是很理解,直到自己长久的使用了之后才慢慢的理解,HIVE基于HDFS,这就给HIVE提供了可靠的数据来源,而分析的话,很早之前是基于MR的,但是现在MR已经被淘汰了,改为了基于Spark来计算分析了。而在hive中对表的复制,操作完之后,原位置不再有数据,即数据都迁移到了复制的位置,此时为表的mv操作。对于as来说,创建的内部表是原表的全部,对于like来说,创建的内部表只是原表的元数据。

2023-08-25 10:58:32 43

原创 MapReduce工作流程以及过程I/O

※map阶段※默认是不需要分区的,需不需要分区要看后续有几个reducetask,当reducetask>=2的时候,map阶段就需要针对自己的输出数据进行分区。map阶段的缓冲区到reduce阶段的数据merge都属于shuffle阶段,shuffle阶段会将map阶段存到磁盘的数据抽取出来并进行分区处理。第二次:shuffle阶段(处理map与reduce中间流程的数据),将map阶段缓存到磁盘内的数据抽取到reduce阶段的分区内。reduce阶段会将shuffle阶段拉到分区的数据进行merge。

2023-08-20 20:53:09 312 1

原创 Mysql5与Mysql8版本

最近在写SQL时候遇到了一些苦恼的问题,在使用MySQL5版本时候想对字段进行排序,可是5版本的MySQL不支持自动排序,自己也是在网上查了好多方法,得出的结论是5版本的MySQL得自己定义参数进行排序,看的眼麻,心想还不如python或者Java直接排序得了。然后又看了MySQL8版本,好在8版本有开创函数,可以很简便的实现分组排序。

2023-08-20 17:43:31 221 1

空空如也

空空如也

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

TA关注的人

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