- 博客(51)
- 收藏
- 关注
原创 爬虫学习-基础库的使用(requests)
实际上, requests 在发送请求的时候,是在内部构造了一个 Request 对象,并给这个对象赋予了各种参数,包括url、headers、data等,然后直接把这个Request 对象发送出去,请求成功后会再得到一个Response对象,解析这个对象即可。可以,但这样做显得很烦琐,我们有更简单的解决方法。这里通过比较返回码和内置的表示成功的状态码,来保证请求是否得到了正常响应,如果是,就输出请求成功的消息,否则程序终止运行,这里我们用requests.codes.ok得到的成功状态码是 200。
2023-12-10 16:12:27
524
1
原创 爬虫学习-基础库的使用(urllib库)
一、urllib库介绍urllib是Python的内置的HTTP请求库,不需要另外下载,可直接使用。urllib库包含以下四个模块:最基本的HTTP请求模块。可以模拟请求的发送。就像在浏览器李输入网址然后按下回车一样,只需要给库方法传入URL以及额外的参数,就可以发送请求的过程了。异常处理模块。如果出先请求异常,那么我们可以捕获这些异常,然后进行重试或其他操作以保证程序运行不会意外停止。工具模块。提供了许多URL的处理方法,例如拆分、解析、合并等。
2023-12-09 16:18:03
643
1
原创 爬虫学习-基础(HTTP原理)
Cookie 里有信息标识了我们所对应的服务器的会话,每次浏览器在请求该站点的页面时,都会在请求头中加上 Cookie 并将其发送给服务器,服务器通过Cookie 识别出是我们自己,并且查出当前状态是登录状态,所以返回结果就是登录之后才能看到的网页内容。但在HTTP2.0中,由于有了二进制分帧技术的加持, HTTP 2.0不用再以 TCP 连接的方式去实现多路并行了,客户端和服务器可以将HTTP消息分解为互不依赖的帧,然后交错发送,最后再在另一端把它们重新组装起来,达到以下效果。
2023-12-02 17:48:40
1684
1
原创 Spark新特性与核心概念
1.AQE的开启通过: spark.sql.adaptive.enabled设置为true开启。2.AQE是自动化优化机制,无需我们设置复杂的参数调整,开启AQE符合条件即可自动化应用AQE优化。3.AQE带来了极大的SparkSQL性能提升。
2023-10-28 21:39:24
1115
原创 SparkSQL综合案例-省份维度的销售情况统计分析
报错:java.sql.BatchUpdateException: Incorrect string value: '\xE6\xB1\x9F\xE8\xA5\xBF...' for column 'storeProvince' atrow1。原因:MySQL的UTF-8只支持3个字节的unicode字符,无法支持四个字节的Unicode字符。②TOP3销售省份中,有多少家店铺日均销售额1000+④TOP3省份中,各个省份的支付类型比例。③TOP3省份中,各个省份的平均单价。①将需求结果写出到mysql。
2023-10-28 18:10:25
818
1
原创 SparkSQL执行流程与Catalyst优化器
catalyst的各种优化细节非常多,大方面的优化点有2个:将逻辑判断提前到前面,以减少shuffle阶段的数据量。简述,行过滤,提前执行where。将加载的列进行裁剪,尽量减少被处理数据的宽度。简述,列过滤,提前规划select的字段数量。(5)Spark SQL执行流程1.提交SparkSQL代码2.catalyst优化a.生成原始AST语法数b.标记AST元数据c.进行断言下推和列值裁剪以及其它方面的优化作用在AST上d.将最终AST得到,生成执行计划e.将执行计划翻译为RDD代码。
2023-10-25 21:29:09
492
原创 Spark_SQL函数定义(定义UDF函数、使用窗口函数)
无论Hive还是SparkSQL分析处理数据时,往往需要使用函数,SparkSQL模块本身自带很多实现公共功能的函数,在pyspark.sql.functions中。SparkSQL与Hive一样支持定义函数:UDF和UDAF,尤其是UDF函数在实际项目中使用最为广泛。Hive中自定义函数有三种类型:第一种:UDF(User-Defined_-function)函数一对一的关系,输入一个值经过函数以后输出一个值;
2023-10-25 19:18:07
2275
3
原创 Spark_SQL-DataFrame数据写出以及读写数据库(以MySQl为例)
①jdbc连接字符串中,建议使用useSSL=false 确保连接可以正常连接( 不使用SSL安全协议进行连接)②jdbc连接字符串中,建议使用useUnicode=true 来确保传输中不出现乱码。③save()不要填参数,没有路径,是写出数据库。④dbtable属性:指定写出的表名。
2023-10-24 17:20:00
1155
原创 SparkSQL的Shuffle分区设定及异常数据处理API(去重、缺失值处理)
在Spark SQL中,当Job中产生Shuffle时,默认的分区数(spark.sql.shuffle.partions)为200,在实际项目中要合理的设置。在允许spark程序时,查看WEB UI监控页面发现,某个Stage中有200个Task任务,也就是说RDD有200分区Partion。功能:如果数据中包含null通过dropna来进行判断,符合条件就删除这一行数据。功能:对DF的数据进行去重,如果重复数据有多条,取第一条。功能:根据参数的规则,来进行null的替换。
2023-10-23 21:36:24
704
原创 Spark SQL概述与基本操作
Spark SQL是Apache Spark的一个模块,它用于处理结构化和半结构化的数据。Spark SQL允许用户使用SQL查询和操作数据,这种操作可以直接在Spark的DataFrame/Dataset API中进行。此外,Spark SQL还支持多种语言,包括Scala、Java、Python和R。
2023-10-23 17:46:01
1017
原创 共享变量(广播变量、累加器)
在Spark中,每次任务执行时,都需要将变量从驱动程序发送到每个执行器。如果变量很大,这将导致网络传输和内存开销的增加,从而影响任务的性能。广播变量可以将变量仅发送一次,然后在每个执行器上缓存,以便多个任务可以共享同一个变量,从而减少了网络传输和内存开销,提高了任务的性能。想要对map算子计算中的数据,进行计数累加,得到全部数据计算完后的累加结果。
2023-10-21 18:03:00
181
原创 RDD的持久化
RDD的缓存技术: Spark提供了缓存APl,可以让我们通过调用API,将指定的RDD数据保留在内存或者硬盘上缓存的API。②CheckPoint支持写入HDFS,缓存不行, HDFS是高可靠存储, CheckPoint被认为是安全的。④CheckPoint因为设计认为是安全的,所以不保留血缘关系,而缓存因为设计上认为不安全,所以保留。1.在内存中的缓存是不安全的,比如断电\计算任务内存不足,把缓存清理给计算让路。RDD的数据是过程数据,只在处理的过程中存在,一旦处理完成,就不见了。
2023-10-19 19:21:33
196
原创 RDD算子操作(基本算子和常见算子)
flatMap(f:T=>Seq[U]): RDD[T]=>RDD[U]),表示将RDD经由某一函数f后,转变为一个新的 RDD,但是与map 不同,RDD中的每一个元素会被映射成新的0到多个元素(f 函数返回的是一个序列Seq)。功能:将RDD的数据,加上嵌套,这个嵌套按照分区来进行,比如RDD数据[1,2,3,4,5]有两个分区,那么glom后,数据变成:[[1,2,3],[4,5]]。功能:map算子,是将RDD的数据一条条处理(处理的逻辑 基于map算子中接受的处理函数),返回新的RDD。
2023-10-19 17:12:42
1561
原创 Pyspark库以及环境配置
一、pyspark类库类库:一堆别人写好的代码,可以直接导入使用,例如Pandas就是Python的类库。框架:可以独立运行,并提供编程结构的一种软件产品,例如Spark就是一个独立的框架。PySpark是Spark官方提供的一个Python类库,内置了完全的Spark API,可以通过PySpark类库来编写Spark应用程序,并将其提交到Spark集群中运行。(1)下载PySpark库。
2023-10-17 14:15:43
2500
原创 Spark数据结构:RDD
RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,代表一个不可变、可分区、里面元素可并行计算的集合。可以认为RDD是分布式的列表List或数组Array,抽象的数据结构,RDD是一个抽象类Abstract Class和泛型Generic Type。
2023-10-14 16:35:42
293
原创 spark简述
(4)Executor:是一个JVM Process 进程,一个Worker(NodeManager)上可以运行多Executor,Executor通过启动多个线程(task)来执行对RDD的partition进行并行计算,也就是执行我们对RDD定义的例如map、flatMap、reduce等算子操作。(2)在JOb中从读取数据封装为RDD和一切RDD调用方法都是在Executor中执行,其他代码都是在Driver Program中执行。RDD调用函数都是在Executors中执行。进行集群的监控等职责;
2023-10-11 20:46:26
79
原创 spark on yarn 配置、部署模式DeployMode
(2)随后Resource Manager分配Container,在合适的Node Manager上启动Application Master,此时的Application Master相当于一个Executor Laucher,只负责向Resource Manager申请Executor内存;(2)随后Resource Manager分配Container,在合适的Node Manager上启动Application Master,此时的Application Master就是Driver;
2023-09-27 15:01:11
487
原创 scala安装配置
解压:tar -zvxf scala-2.12.15.tgz -C /export/servers。构建软连接: ln -s scala-2.12.15/ scala。生效环境变量:source /etc/profile。命令:sudo vim /etc/profile。命令:scala -version。1、上传压缩包并解压。#Scala环境变量。
2023-09-20 17:13:00
125
原创 Kaka安装配置
构建软连接:ln -s kafka_2.13-2.8.0/ kafka。在export文件夹新建onekey文件夹,新建文件slave。tar -zvxf Kafka压缩包 -C 目标文件夹。生效环境变量:source /etc/profile。#指定Kafka数据的位置(根据自己需要选择位置)验证kafka,使用命令查看卡夫卡主题列表。新建start-kafka.sh文件。新建stop-kafka.sh。#指定broker的id。将两个文件改为可执行文件。1.Kafka启停脚本。#kafka环境变量。
2023-09-18 19:45:04
141
原创 spark IDEA应用开发(maven工程及模块)
进入maven/conf修改settings.xml(我使用的pycharm),将原有下载源注释,添加阿里云下载源。下载Hadoop的core-site.xml,hdfs-site.xml和spark的log4j文件。在src目录新建test目录,在创建java,resources和scala目录。打开设置,若maven为修改后地址则表示修改成功。填写模块名,选择maven模块版本,点击创建。编写单词统计代码并运行,出现统计结果表示成功。解压压缩包,新建文件夹repository。
2023-09-17 20:07:53
152
原创 spark集群搭建(Stand alone(非HA)、Stand alone(HA))
由于集群的信息,包括worker、driver和application的信息都已经持久化到文件系统,因此在切换的过程中只会影响job的提交,对应正在进行的job没有任何影响。Spark Stand alone集群式Master-Slaves架构的集群模式i,和大多数的Master-Slaves结构集群一样,存在着Master单点故障(SPOF)的问题。启动history(在spark的sbin目录下运行start-history-server.sh)配置spark-env.sh文件。
2023-09-16 20:46:02
167
原创 apache-zookeeper安装部署(详细过程以及启停脚本)
Zookeeper集群搭建指的是zookeeper分布式模式安装。通常由2n+1台servers组成。这是因为为了保证Leader选举(基于Paxos算法的实现)能够得到多数的支持,所有zookeeper集群的数量一般为奇数。zookeeper运行需要Java环境,所有需要提前安装jdk。对于安装leader+follower模式集群,大致过程如下:①配置主机名称到ip地址映射配置(参考Hadoop集群配置)②修改Zookeeper配置文件③远程复制分发安装文件④设置myid。
2023-09-16 16:31:00
408
原创 Spark-shell运行测试
调度每个job执行,在启动Spark-shell时,自动创建Spark context对象,变量名称为:sc,提供给用户读取数据。在spark-shell界面加载数据:val wordRDD = sc.textFile("/datas/wordscount.txt");分割数据: val wordsRDD=wordRDD.flatMap(line => line.split("\\s+"))在启动spark-shell时,自动创建SparkSession对象,变量名称为:spark,以供用户使用读取数据。
2023-09-14 20:50:58
417
原创 pySpark概述及环境搭建(local模式,Stand alone模式(非HA))
Apache Spark 是用于大规模数据(large-Scala data)处理的统一(unified)分析引擎。其特点是对任意类型的数据进行自定义计算结构化、半结构化、非结构化等各种类型的数据结构,同时也支持使用python、Java、Scala、R以及SQL语言取开发程序计算数据。
2023-09-12 10:58:05
1812
原创 基于Hive进行聊天数据分析案例实践
聊天平台每天都会有大量的用户在线,会出现大量的聊天数据,通过对聊天数据的统计分析,可以更好的对用户构建精准的用户画像,为用户提供更好的服务以及实现高 ROI 的平台运营推广,给公司的发展决策提供精确的数据支撑。项目将基于一个社交平台 App 的用户数据,完成相关指标的统计分析并结合 BI 工具对指标进行可视化展现。从 A 抽取数据 (E) ,进行数据转换过滤 (T) ,将结果加载到 B(L) ,就是 ETL。(4)选择新建的分析主题,找到上传的数据文件夹,选择数据。 统计今日发送消息和接收消息的用户数。
2023-09-09 17:24:17
1951
原创 BI软件概述以及FineBI安装并连接Hive(包含安装包和插件)
简单来说,就是借助BI工具,可以完成复杂的数据分析、数据统计等需求,为公司决策带来巨大的价值。1.在FineBI安装目录进入FineBI6.0\webapps\webroot\WEB-INF\lib此文件夹。6.运行程序,输入在官网注册账号获取的激活码,也可以点击获取激活码。2.粘贴jar包,jar在前面的百度网盘中的Hive连接驱动里。8.选择Fine BI元数据存储数据库,个人选择内置即可。⑤填写信息,密码不用填然后点击测试连接。②在数据连接里点击数据连接管理。2.点击下一步,选择我接受协议。
2023-09-08 20:31:01
4834
7
原创 Hive的函数操作(数值函数、集合函数、类型转换函数、日期函数、条件函数、字符串函数、数据脱敏函数,其他函数等)
Hive的函数分为两大类:内置函数(Built_in Functions)用户自定义函数UDF(User_Defined),Hive函数总计有100多种,详细内容可前往 官方文档查看。取随机数函数:select rand() 返回一个0-1范围的随机数。指定精度取整:select round(double a,int b)日期相减 : date_sub('2008-12-31', 1) = '2008-12-日期相加 : date_add('2008-12-31', 1) = '2009-01-
2023-09-08 15:32:06
1033
原创 Hive数据查询(基本查询、RLIKE正则匹配、union联合、Sampling采样、Virtual Columns 虚拟列)
使用这种语法抽样,条件不变的话,每一次抽样的结果都一致,无法做到随机,只是按照数据顺序从前向后取。row_ _offset_ _inside_ _block,显示数据所在的HDFS块的偏移量看,需要运行语句。num(K|M|G)表示抽取num大小的数据,单位可以是K、M、G表示KB、MB、GB。block_ _offset_ _inside_ _file,显示数据行所在文件的偏移量。input_ _file_ _name,显示数据行所在的具体文件。rand()表示随机的依据基于整行(普通表使用)
2023-09-07 15:55:21
1199
原创 Hive复杂数据类型(array类型、map类型、struct类型)
一、array类型建表语句:create table 表名(要素1 类型,要素2 类型,要素3 array) row format delimited fileds terminated by '\t' collection items terminated by ',';
2023-09-06 17:01:51
4255
1
原创 Hive的外部表、内部表、分区表、分桶表
由于load data不会触发mapreduce,也就没有计算过程1(无法执行hash算法,只是简单的移动数据,所以无法用于分桶表数据插入)将大的文件分成一个个小的文件,操作的时候直接操作小文件,hive支持多个字段进行分区,多分区带有层级关系,例如公司的季度表,可以按照年分区,然后年里面再使用月分区,月里面再使用日分区。分桶和分区一样,也是一种通过改变表的存储模式,从而完成对表优化的一种调优方式,但和分区不同,分区是将表拆分到不同的子文件夹中进行存储,而分桶是将表拆分到固定数量发不同文件中进行存储。
2023-08-24 20:08:04
960
1
原创 Hive基础操作语法(数据库操作、数据表操作、数据加载和导出)
语法:insert overwrite [ local ] directory ' path ' row format delimited fields terminated by " \t" select_statement1 from_statement;create table 表名(要素1 数据类型,要素2 数据类型,····,要素N 数据类型)insert into 表名 values(要素1 ,要素2,······要素N )注意:-e后将接sql语句,-f后接sql脚本。
2023-08-24 18:15:19
455
1
原创 Apache Hive概述以及在linux安装hive
将SQL语句翻译成MapReduce程序运行。基于Hive为用户提供了分布式SQL计算能力,写的是SQL,运行的是MapReduce。Hive的优点:①操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)。②底层执行MapReduce,可以完成分布式海量数据的SQl处理。
2023-07-26 19:28:37
1174
2
原创 Linux基础命令
>:表示追加输出将命令的输出追加到一个文件中,如果文件不存在则创建文件,如果文件已存在则在文件末尾追加内容。>:表示覆盖输出,将命令的输出重定向到一个文件中,如果文件不存在则创建文件,如果文件已存在则覆盖文件内容。... :表示上级目录,比如 .../ 表示上级目录,... / ... /表示上级目录的上级目录。语法:chown [ -R ] [ 用户 ] [ : ] [ 用户组 ] 文件或文件夹。-d:指定用户的HOME路径,不指定默认在:/home/用户名。
2023-07-26 10:06:12
385
1
原创 分布式计算概述(MapReduce && Yarn理论及部署)
分布式计算,即以分布式的形式完成数据的统计,得到想要的结果。MapReduce提供了2个编程接口:·Map:提供了”分散“的功能,由服务器分布式对数据进行处理。·Reduce:提供了”汇合(聚合)“的功能,将分布式的处理结果汇总统计。用户如需使用MapReduce框架完成自定义需求的程序开发,只需使用Java、Python等编程语言,实现MapReduce功能接口即可。(1)资源调度资源:服务器硬件资源,如:CPU、内存、硬盘、网络等资源调度:管控服务器硬件资源,提供更好的利用率。
2023-07-25 15:59:58
981
1
原创 HDFS存储原理(存储原理、fsck命令、namenode元数据、读写流程)
edits文件,是一个流水账文件,记录hdfs中的每一次操作,以及本次操作影响的文件及其对应的block。但是edits文件检索有一个问题:当用户想要查看某文件内容,如/tmp/data/test.txt,就需要在全部的edits中搜索(还需要按顺序从头到尾,避免后期改名或者删除效率非常低)。这个属性默认是3,一般情况下,无需主动配置(除非需要设置非3的数值),如果需要自定义,需要将三台机器文件配置文件都修改。在遇到多个大小不等的文件需要存储时,由于文件大小不同,所分出的部分的大小也不相同。
2023-07-24 16:52:16
1912
原创 HDFS客户端(Jetbrians 产品插件)
(3)在URL输入namenode的ip加:8020(注意冒号使英文冒号),在Hadoop user name一路上输入hadoop用户名,最后点击test connection连接。(1)将下载的hadoop.dll和winutils.exe复制到hadoop的bin目录里。链接:https://pan.baidu.com/s/1ZLYpfA9MXJZFGYQ3PGqvTQ。链接:https://pan.baidu.com/s/1kTC3p5VwDAWKxziM4YBUjg。
2023-07-22 11:03:57
581
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人