- 博客(66)
- 收藏
- 关注
原创 Python的数据存取操作之文本文件的数据存取(5-1)
文本型文件是常见的可以用来存储数据的文件,使用文本文件存储数据的优点在于直视、存取方便,不足之处在于数据量达到一定规模之后,读写和检索的速度会变得较为缓慢。
2021-10-26 18:38:41
1459
原创 Python语言进阶之面向对象编程(类和对象、魔术方法)、文件操作(4-3)
面向过程是一种以过程为中心的编程思想,它先是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,在使用时依次调用,是一种基础的顺序思维方式。面向过程的开发方式是对计算机底层结构的一种抽象,它将程序分为数据和操纵数据的操作两部分,其核心问题是数据结构和算法的开发和优化。常见支持面向过程的编程语言有C、COBOL等。面向对象是按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的办法。面向对象方法把所有事物都当作独立的对象,处理问题的过程中所思考的关
2021-10-21 18:31:47
496
3
原创 Python语言进阶之函数-基本概念,变量作用域,迭代器和生成器,装饰器(4-2)
在程序设计领域,函数实际上是一段具有特定功能、完成特定任务的程序,用于减少重复编写程序段的工作量。面向过程:函数被称为过程(Procedure)、子程序(Sub-Program);面向对象:函数被称为方法(Method)1、函数的基本概念定义一个函数需要遵循以下原则:1)、函数代码块以 def 关键字开头,后接函数名称和圆括号 “ () ”,圆括号后的冒号“ :”表示函数体的开始;2)、任何传入参数和自变量必须放在圆括号 “ ()” 中间;3)、函数的第一行语句可以使用注释语句编写说明;4)
2021-09-29 15:51:15
319
原创 Python语言进阶之流程控制和异常处理(4-1)
一、流程控制流程控制是程序设计语言的重要功能之一,主要包括条件语句和循环语句两种。条件语句:用于改变程序运行指令的先后顺序;循环语句:将某段指令代码反复运行若干遍。1、条件语句条件语句根据条件判断表达式的值来决定后续运行程序的顺序。Python支持三种条件语句,分别为 if语句 、if…else…语句和 if…elif…else…语句。if 及其衍生的条件判断语句是目前各种高级程序设计语言的关键核心之一。Python的 if 类条件判断语句与其他语言的不同之处主要有以下三点:1)、条件表达式
2021-09-27 11:52:43
473
原创 Python语言基础之运算符+语言基础问答+案列任务
一、运算符Python中的运算符主要分为七大类: 算术运算符、比较(关系)运算符、赋值运算符、逻辑运算符、位运算符、成员运算符和身份运算符。1、算术运算符Python中算术运算符共有7个,如下所示:2、比较(关系)运算符Python中比较(关系)运算符共有6个,如下: a = 10 b = 15 print(a == b) # False print(a != b) # True print(a > b) # False p
2021-09-26 15:49:26
302
原创 Python语言基础之数据类型-Tuple、Set、Dictionary(3-4)
1、Tuple元组和列表的功能相似,两者的区别在于列表的元素可以修改,元组的元素不能修改。元组使用成对的圆括号 “( ) ” 定义,如下:tuple1 = (‘a’, ‘b’, ‘c’, ‘d’)tuple2 = (1, 2, 3, 4, 4)当元组中只有一个元素时,需要在元素后面加上逗号 “,” ,否则定义元组的圆括号会被当作运算符:tup1 = (1)print(type(tup1)) # <class 'int'> 不加 逗号 ,类型为整数tup2 = (1,)
2021-09-24 11:00:23
302
原创 Python语言基础之数据类型-List(3-3)
List 列表是Python中的一种序列型数据结构,其中的每个元素都有自己的位置,称为 “下标” 或 “ 索引”。列表中不同的下标指向不同的元素。第一个下标值从 0 开始,最后一个下标值是列表的元素个数减1,也可以是 -1。定义列表使用成对的方括号 “ [ ] ” ,其中元素之间使用逗号 “,”分隔,列表中各个元素的数据类型可以不同,列如:list1 = [‘a’, ‘b’, ‘c’, 1, 2]list2 = [1, 2, 3, 4, 5]1、访问列表中的元素需要使用下标,例如:list1[
2021-09-23 17:28:33
1279
原创 Python语言基础之数据类型-正则表达式(3-2)
1、正则表达式正则表达式又称规则表达式(Regular Expression),是使用单个字符串来描述、匹配某个句法规则的字符串,常被用来检索、替换那些符合某个规则的文本。一个正则表达式通常称为一个模式(Pattern)。例如,Polish/Spanish/Swedish这三个字符串,都可以由(Pol/Span/Swed)ish这个模式来描述。大部分的正则表达式的形式都有以下结构:1)、选择竖线 “|” 表示选择,具有最低优先级,例如:center|centre 可以匹配 center 或 centr
2021-09-23 14:09:02
429
原创 Python语言基础之数据类型-Number/Bool/String(3-1)
二、数据类型与Scheme、Ruby、Perl、Tcl等动态类型编程语言一样,Python拥有动态类型系统和垃圾回收功能,能够自动管理内存使用情况。Python内置的基本类型主要有Number(数值)、Bool(布尔)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)、**Dictionary(字典)**等。1、Number(数值)Python 3.x中的Number类型包括int(整数)、float(浮点型)、complex(复数)三种。Python 3.x将 long
2021-09-10 18:11:40
374
原创 Python语言基础之基本概念篇(2)
(掌握要点:变量的基本用法、Python保留字的含义、注释和缩进的用法)一、基本概念Python是一种通用性编程语言,作为一种解释型语言,强调代码的可读性和简洁的语法,尤其是使用空格缩进划分代码块,而非使用大括号或者关键字。与C++或Java相比,无论程序规模大小,Python都让程序的结构显得更清晰明了,让开发者能够用更少的代码得到想要的结果。1、保留字保留字即其他语言中的关键字,是指在语言本身的编译器中已经定义过的单词,具有特殊含义和用途,用户不能将其作为变量名、函数名或类名使用。在Pytho
2021-09-01 17:58:58
160
原创 Python第三方组件(库)安装(1)
Python第三方组件(库)学习-Matplotlib、NumPy和SciPy(1)一、安装Matplotlib、NumPy、SciPy**Matplotlib是一个Python 2D绘图库,它可以在各种平台上生成具有出版品质的图形。Matplotlib可用于Python脚本,可运行在Python和IPython shell、Web应用程序服务器环境。(由于在安装Python时已经安装了pip组件,所以第三方组件我们使用PIP方式安装。如果安装了合适的开发工具,那么也可以在工具上点击安装。下面以CMD
2021-09-01 10:51:15
2828
原创 SparkSQL之DataFrame 编程(创建DataFrame ,DataFrame数据运算操作 ,输出存储DataFrame)(11)
一 新的编程入口 SparkSession二 创建 DataFrames1 从RDD创建DataFrame2 从结构化文件创建DataFrame3 从外部服务器读取数据创建DataFrame三 DataFrame数据运算操作四 输出存储DataFrame
2021-08-27 15:48:15
1491
原创 Hadoop之 集群机器免密登录操作
1 先检查集群中的机器中ssh是否存在 :yum -yinstallssh2 如果不存在就搜索ssh : yum list | grep ssh ,搜索到的ssh为 :openssh-clients.X86_643 一步就位 ,给集群中的机器都安装上ssh1) View ==> Command Window(打开命令窗口)2) 在命令窗口中输入 :yum -y install openssh-clients.X86.643) "右键"单击...
2020-10-07 23:28:38
515
原创 Spark之多线程安全问题 ,RDD的错误示范,累加器(分布式计算器) ,shuffle算子特殊情况 ,调用别人的API怎么操作(9)
一 多线程安全问题二 定期更新规则三 累加器用来统计数据处理的条数 ,在Task局部聚合 ,再到Driver端sum在Driver端定义累加器 ,有以下三种形式 :1)collectionAccumulator :将异常数据保存到集合里面2)longAccumulator("累加器的名字")3) DoubleAccumulator无参val rdd1 = parallelize(List(1,2,3,4,5,6))---在Driver端定义...
2020-10-05 22:32:59
1330
原创 SparkCore之 自定义分区器, 自定义排序, 分组TopN ,序列化问题(8)
一 自定义分区器1 场景:根据自己的定义的分区规则 ,将数据shuffle的下游RDD按定义的规则分区 ,严格的说是下游的Task到上游拉取数据2 定义一个类 ,继承spark的Partitioner ,重写2个方法 ,获取分区的数量(numPartitions) ,根据输入数据的Key获取该数据返回的分区编号(getPartition)3 在Driver端(SparkContext) new一个自定义Partitioner类的实例,将该实例传入调用的会产生shuffle的算子(就是需要...
2020-10-02 22:26:19
682
1
原创 Spark之cache ,persist ,checkpoint ,广播变量及其案例 : 根据IP地址(浏览器访问日志获取) / 经度纬度定位地理位置案例(7)
一 cache二 persist三 checkpoint四 案例分析根据IP地址查找到位置信息(省市)
2020-10-01 23:23:07
1828
原创 Spark之RDD的Action算子和最受学生喜爱/欢迎的科目案例(5)
一 RDD 的 Action 算子Action :行动算子 ,调用行动算子会触发job执行 ,本质上是调用了sc.runJob方法 ,该方法从最后一个RDD,根据其依赖关系 ,从后往前 ,划分 Stage ,生成 TaskSet .二 对RDD的操作(创建,查看)1 创建 RDD的方法1.1 通过并行化方法 ,将 Driver端的集合转成 RDDval rdd1:RDD[Int] = sc.parallelize(Array(1,2,3,4,5,6,7),2...
2020-10-01 20:21:14
384
原创 Spark之RDD的Transformation算子map,flatMap,fliter,mapPartition,groupBy/reduceByKey,foldByKey,distinct.(4)
一 Transformation算子Transformation :即转换算子 ,调用转换算子会生成一个新的RDD ,Transformation是 Lazy的,不会触发job执行 .二 对RDD的操作(创建,查看)1 创建 RDD的方法1.1 通过并行化方法 ,将 Driver端的集合转成 RDDval rdd1:RDD[Int] = sc.parallelize(Array(1,2,3,4,5,6,7),2) --- 2可以省略不写 ,默认...
2020-09-30 23:04:55
637
原创 Spark之基本概念篇(RDD ,DAG,Task,TaskSet ,Stage,Shuffer,Job,dependency,Application,SparkContext)(3)
一 什么是RDDRDD的全称是 Resilient Distributed Dataset ,是一个弹性的 ,可复原的分布式数据集 .是 Spark中最基本的抽象,是一个不可变的 /有多个分区的 / 可以并行计算的集合 . RDD中并不装真正要计算的数据 ,而装的是描述信息 ,描述以后从哪里读取数据 ,调用了什么方法 ,传入了什么函数 ,以及依赖关系等 .二 RDD的特点1 有一些列连续的分区 :分区编号从0开始,分区的数量决定了对应阶段Task的并行度2 有一个函...
2020-09-30 16:32:03
1429
1
原创 Spark之用户连续登陆案例和流量统计案例分析-算子联用(6)
案例一 :计算出连续登陆三天的用户重要的算子 :repartitionAndSortWithinPartitions方法 ,分区并且在区里面进行排序数据如下 :guid01,2018-02-28guid01,2018-03-01guid01,2018-03-05guid01,2018-03-02guid01,2018-03-04guid01,2018-03-06guid01,2018-03-07guid02,2018-03-01guid02,2018-03-03guid...
2020-09-26 19:56:04
388
原创 Hive之With a as 和 case when 和 join on 和 group by 联用案例(10)
一 数据源,将数据添加到linux本地,生成静态文件数据源用户工资组成表 sal.txtuid jb jj tc deptno tb_sal1,2000,3000,1500,12,5000,500,1000,23,1500,1000,3000,24,3000,6000,8000,35,1500,2000,1800,16,2500,1000,1900,1bm.txt 部门表 tb_departmen1,销售2,技术3,行政员工信...
2020-09-19 22:20:25
1600
原创 Hive之窗口函数(partition) / order by / row_number / date_sub 等函数联合使用案例(9)
案例1:求出连续销售3天的店铺一 数据源 ,将数据源(结构化数据)导入到本地一个新建的文件中数据源 : name,ctime, costa,2020-02-10,600a,2020-03-01,200a,2020-03-02,300a,2020-03-03,200a,2020-03-04,400a,2020-03-05,600a,2020-02-05,200a,2020-02-06,300a,2020-02-07,200a,2020-02-08,400b,2020-0...
2020-09-19 21:23:33
784
3
原创 Hive 之集合数据类型实操(侧窗口函数的运用(lateral view)) (8)
一 集合数据类型有 :1) array 数组2) map (K,V形式)3) struct (结构体,对象)二 数据源name , friends , children ,address.street/citysongsong,bingbing_lili,xiao song:18_xiaoxiao song:19,hui long guan_beijingyangyang,caicai_susu,xiao...
2020-09-18 22:53:34
404
原创 Hive之系统内置函数 ,自定义UDF函数 ,JSON 解析函数 (7)
一 系统内置函数1 查看系统自带的函数hive>show functions;2 显示自带的函数的用法hive> desc function upper;3 详细显示自带的函数的用法hive > desc function extended upper;二 自定义 UDF函数1 自定义临时的UDF函数1.1 创建一个 Maven工程 Hive1.2 导入依赖<dependencies> <!...
2020-09-18 22:09:41
586
原创 Hive之查询语法---分桶和抽样,case when 和 if,列行互转 ,窗口函数 ,row_number 和 rank 和 dense_rank() (6)
一 分桶和抽样查询1 分桶表数据存储对 Hive表分桶可以将表中记录按分桶键(字段)的hashcode值分散进多个文件中 ,这些小文件称为桶 .分区表和分桶表的区别 :分区表 :1)分区针对的是数据的存储路径 .2) 分区表实际上就是对应一个HDFS文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过WHERE子句中的表达式选择查询所需要的指定的分区,这样的查询效...
2020-09-17 23:41:49
996
原创 Spark之在java客户端创建项目 ,以及使用scala / java / javaLambda 语言编写入门程序(2)
一 在java客户端创建 Spark项目1 打开 IDEA软件 ,在工具类上 File -->New --> Project ,选择 Maven ,然后下一步将项目名字写成spark即可 ,然后finish 完成项目的创建 .2 设置 Maven settings file的位置和 Local respository的位置 .3 在pom.xml配置文件中添加spark相关的依赖和插件<!-- 定义了一些常量 --> &...
2020-09-17 21:34:56
382
原创 Spark之简介 ,在虚拟机上安装和搭建集群流程(1)
一 Spark 简介1 什么是 Spark1.1 Spark是一种快速 /通用 /可扩展的大数据分析 /计算引擎 ,大数据处理框架 .1.2 Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。1.3 Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同...
2020-09-16 23:26:08
766
原创 Hive之查询语法---常用函数,Limit,where,分组,join ,排序(5)
一 查询1 语句的查询顺序二 基本查询1 基本查询1) show function ; 查询所有的函数2) desc function "函数名" ; 查看某个函数具体的语法(怎么用)2 常用函数1) 求总行数(count) : hive (default)> select count(*) cnt from emp; ---cnt 是总行数的别名2) 求工资的最大值 :hive (default)>...
2020-09-15 23:14:35
7707
原创 Akka 通信框架在java端项目的安装,环境的准备,简介和入门程序(1)
一 Akka简介1 akka的定义Akka是JAVA虚拟机平台上构建高并发、分布式和容错应用的工具包, 是异步、非阻塞、高性能的事件驱动编程模型 /通信框架。Akka用Scala语言编写,同时提供了Scala和Java的开发接口。Akka处理并发的方法基于Actor模型,Actor之间通信的唯一机制就是消息传递。在Akka中执行单元是Actor ,在Actor模型中并不是通过Actor对象的某个方法来告诉Actor需要做什么,而是给Actor发送一条消息。当一个Actor收到消息后,它...
2020-09-15 16:13:48
688
原创 Scala之高级语法-高阶函数,偏函数,匹配模式,柯里化详解,隐式详解,泛型(视图界定/上下文界定),比较器(Ordered/Ordering)(8)
一 高阶函数(很重要!!!)函数的参数或者返回值是函数的函数或者方法 函数的参数和返回值都是函数的函数或者方法使用高阶函数的一个原因是减少冗余的代码 ,比如说需要写几个方法以通过不同方式来提升员工工资,若不使用高阶函数,代码可能会很冗余臃肿 ,如下:object SalaryRaiser { def smallPromotion(salaries: List[Double]): List[Double] = salaries.map(salary => salary * ..
2020-09-12 23:25:32
423
原创 Scala之集合中常用的方法(6)
一 集合之间的转换(重点)toArray 将其他类型的集合转换成数组 toList 将其他类型的集合转转成list toSet 将其他类型的集合转换成Set(有去重功能 ,但是distinct) toSeq 将其他类型的集合转换成Seq序列 toMap 将对偶类型的集合转换成Map toString 将其他类型转换成字符串...
2020-09-12 11:39:20
1314
原创 Scala之面向对象-类和对象(构造器/成员变量,方法,函数/apply方法),权限修饰符,特质和抽象类,样例类(7)
一 类和对象详解类是一个程序的封装体 ,最基本组成部分是由属性和方法组成 ,属性封装数据 ,方法处理数据 ,编程 =数据+运算1 组成结构构造函数 ,创建对象用 ,为了给属性对象赋值用 成员变量 ,属性 成员方法(函数) 局部变量 代码块 ,大括号中的方法体2 构造器2.1 构造器的定义每个类都有一个主构造器 ,这个构造器和类定义"交织"在一起 ,类名后面的内容就是主构造器 ,如果参数列表为空,()可以省略 .scala的类有且仅有一个主构造器 ,要想提供更加...
2020-09-10 23:31:54
531
原创 Hive之分区表(静态分区 / 动态分区)(4)
一 为什么表数据要分区管理1 hive 中的数据是存储在对应的表的目录下的2 查询数据的时候加载目录下的所有的文件 ,where 筛选过滤3 日志数据可能每天都会有所增加,每天都有大量的文件 ,如每天的操作数据 ;2018-09-02.log.....2018-09-01.log.....2018-08-31.log.....4 为了对数据进行更好的管理,也为了在查询的时候增加查询速度,增加查询效率 ,需要对日志数据进行分区处理 ,也就是让静态文件根据一定的规...
2020-09-09 23:23:24
474
原创 Hive之表数据导入导出 ,表数据存储格式 ,表数据和表的注释(3)
一 表数据的导入和导出1 表数据的导入方式------hive交互窗口上1.1 load本地数据load data local inpath "/root/hive/.txt或者 .log" into table tb_name;load data local inpath "/root/hive/.txt" overwrite into table tb_name; // 加载并覆盖之前的数据1.2 load hdfs shell客户端上的数据load data...
2020-09-08 23:19:44
980
原创 Scala之元组和 Map 集合的定义 ,方法 ,遍历(5)
一 元组scala中存在一种特殊的集合元组 ,元组中可以存储任意类型的元素 ,但是只能存储 22个元素 ,其中对偶元组常作键值映射 .元组是不可变的 ,但可以包含不同类型的元素 def main(args: Array[String]): Unit = { --------------------元组------------------ 元组的定义方法1 val tuple: (Int, Int, Int) = new Tuple3(1, 2, 3) ...
2020-09-08 18:30:36
1139
原创 Scala之Array / List 数组和 Set 集合的定义,方法,,遍历(4)
一 集合scala中的集合分两种 ,可变集合和不可变集合 ,不可变集合可以安全的并发访问 .集合的类主要这以下两个包中 :1)可变集合包 :scala.collection.mutable2)不可变集合包 :scala.collection.immutablescala默认使用的是不可变集合 ,因此使用可变的集合需要导入可变集合的包scala的集合主要分为三大类Seq序列 Set不重复集 Map键值映射集注 :所有的集合都继承自 It...
2020-09-08 17:17:33
2169
原创 Scala之方法和函数的定义和调用(3)
一 函数方法和函数的作用几乎是一样的 ,但是函数在使用的过程中更加灵活和多样化 scala中函数是头等公民 ,可以作为方法的返回值和参数使用 scala是一个集面向对象和面向函数于一身的多范式编程语言 ,灵活的函数是函数式编程的一种体现 函数的使用使代码更加的简洁和优雅1 函数是什么是scala中的一种函数式编程语言 ,函数是scala中的头等公民 ,建议优先使用函数 .函数实现的功能和方法一样,但是我们可以把函数理解成一种特殊的业务逻辑对象 ,所有行数可以作为方法的返回值和参数...
2020-09-08 15:05:01
1972
1
原创 Scala之基本语法,流程控制(2)
一 基本语法1 数据类型1.1scala中的数据类型和java中的数据类型最大的区别就是scala中的数据类型都是对象 (scala中除了方法外都是对象),scala没有原生的数据类型.1.2 数据类型分为两类 : AnyVal (数值类型/简单类型) , AnyRef (引用数据类型) ,两种对象都属于 Any ,都是对象 .1.3 数值类型的变量也属于一个对象 ,也拥有很多方法 . Byte 8位有符号补码整数。数值区间...
2020-09-07 23:49:33
244
原创 Scala-简介,在windows上配置环境,在java上配置项目环境并创建项目(1)
一在 windows上配置scala环境1将scala-2.12.12.zip压缩包从官网上下载 ,在jdk1.8.0_162安装包目录下解压 ,并将scala压缩包删除掉.2点击scala-2.12.12安装包,并且将其绝对路径复制如 :C:\develop\Java\scala-2.12.12.3右键单击" 我的电脑 " ==> " 属性 " ==> 进入系统界面 ==> 单击"高级系统设置" ==>点击 "环境变量".4在...
2020-09-04 23:00:15
210
原创 Hive之环境准备 ,启动 ,DDL语言 ,建表语句(内部表 / 外部表)(2)
一 启动hive前环境准备1启动mysql (两种都可)[root@linux03 ~]# service mysqld start //手动启动mysql服务[root@linux03 ~]# systemctl start mysqld //手动启动mysql服务2 启动hdfs和yarn[root@linux03 ~]# start-all.sh二 启动hive ,进入交互窗口的两种方式1 直接启动hive...
2020-09-03 23:44:45
340
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人