自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 spark读取json文件

JSON文件1593136280858|{"cm":{"ln":"-55.0","sv":"V2.9.6","os":"8.0.4","g":"C6816QZ0@gmail.com","mid":"489","nw":"3G","l":"es","vc":"4","hw":"640*960","ar":"MX","uid":"489","t":"1593123253541","la":"5.2","md":"sumsung-18","vn":"1.3.4","ba":"Sumsung","sr":".

2020-11-22 23:03:08 465

原创 spark UDF UDAF UDTF

UDFimport org.apache.spark.sql.SparkSessionobject SparkUDFDemo { case class Hobbies(name:String,hobbies: String) def main(args: Array[String]): Unit = { val spark = SparkSession.builder().master("local[*]") .appName("sparkudfdemo")

2020-11-22 23:01:48 179

原创 spark-sql经典50题

import java.util.Propertiesimport org.apache.spark.sql.{DataFrame, SparkSession}object SqlTest { def main(args: Array[String]): Unit = { val spark: SparkSession = SparkSession.builder().appName("sqltest").master("local[*]").getOrCreate(); i.

2020-11-22 22:57:32 407

原创 spark RDD算子(二) filter,map,flatmap

filter过滤器,顾名思义就是用来操作数据的算子示例文件在同级目录下有一个文件夹in,文件夹in下有一个sample.txt,内容如下aa bb cc aa aa aa dd dd ee ee ee eeff aa bb zksee kksee zz zksfilterfilter()接收一个函数,把这个函数用于RDD中的每一个元素,将满足函数结果作为结果RDD编程Scala版本找出sample.txt文件中包含zks的行的内容package nj.zb.spa

2020-11-12 15:15:49 374

原创 spark RDD 算子(一) paralleize,makeRDD,textFile

parallelize调用SparkContext 的 parallelize(),将一个存在的集合,变成一个RDD.Scala版本def parallelize[T](seq: Seq[T], numSlices: Int = defaultParallelism)(implicit arg0: ClassTag[T]): RDD[T]- 第一个参数一是一个 Seq集合- 第二个参数是分区数- 返回的是RDD[T]scala> sc.parallelize(List("nanj

2020-11-12 15:05:57 280

原创 Scala部分应用函数和偏函数

部分应用函数部分应用函数也称部分函数。当在调用一个函数时,把这个函数应用到参数中。 如果您传递所有预期的参数,则表示您已完全应用它。 如果只传递几个参数并不是全部参数,那么将返回部分应用的函数。这样就可以方便地绑定一些参数,其余的参数可稍后填写补上。示例object test { def main(args: Array[String]): Unit = { def showMsg(title:String,content:String,num:Int):Unit={

2020-10-27 19:54:44 114

原创 Scala隐式参数、隐式函数和隐式类

隐式参数方法可以具有隐式参数列表,由参数列表开头的implicit关键字标记implicit只能修改最尾部的参数列表,应用于其全部参数 Scala可自动传递正确类型的隐式值 通常与柯里化函数结合使用def sum(x:Int)(implicit y:Int)=x+yimplicit var a=10 //将作为Int类型隐式值自动传递sum(10) //20示例object test {object test { def main(args: Array[String]

2020-10-27 19:53:25 124

原创 Scala伴生类和伴生对象

伴生(Companion)单例对象与同名类定义在同一文件中时形成绑定关系同名类称为单例对象的伴生类(class) 单例对象称为同名类伴生对象(object)伴生类与伴生对象可相互访问各自私有成员伴生对象可为伴生类增加静态成员伴生类与伴生对象//Student.scala//伴生类class Student(n: String, a: Int) { private var name = n //私有变量,伴生对象可以访问 private var age = a}//伴生

2020-10-27 19:51:23 167

原创 Scala柯里化、样例类和模式匹配

柯里化(Currying)方法可以定义多个参数列表,当使用较少的参数列表调用多参数列表的方法时,会产生一个新的参数,该函数接收剩余的参数列表作为其参数。这被称为柯里化//单参数列表def modN(n: Int,x: Int) = ((x % n) == 0)//多参数列表def modN(n: Int)(x: Int) = ((x % n) == 0)//新函数接收剩余的参数列表作为其参数def f1(x: Int) = modN(10)(x) def f2(n: Int) = mo

2020-10-27 19:50:18 107

原创 scala函数之函数作为参数及返回值

高阶函数高阶函数可以将其他函数作为参数或者使用函数作为输出结果//函数作为参数def doSquare(f:Int=>Int,p:Int)=f(p)def square(x:Int):Int=x*xdoSquare(square,square(2))//函数作为返回值//返回类型为函数(Int=>Int)def doSquare()={ (x:Int)=>x*x}doSquare()(2)常用高阶函数map foreach filter

2020-10-27 19:32:39 1667

原创 Scala命名参数和匿名函数

Scala命名参数通常情况下,传入参数与函数定义的参数列表一一对应命名参数允许使用任意顺序传入参数def printName(first:String, last:String) = { println(first + " " + last)} //Prints "John Smith"printName("John","Smith")printName(first = "John",last = "Smith")printName(last = "Smith",first =

2020-10-27 19:30:03 179

原创 scala模式匹配

match表达式类似于Java switch语句能处理类型所有类型 不需要break 能够生成值val firstArg=if(args.length>0) args(0) else ""firstArg match{ case "salt" => println("pepper") case "chips" => println("salsa") case "eggs" => println("bacon") case _ =&gt

2020-10-27 19:28:06 83

原创 Scala面向对象编程

Scala面向对象基本概念类(Class)抽象类(abstract class)单例对象(object)特质(trait)样例类(case class)类(class)类通过class关键字定义类通过new关键字创建实例类拥有成员变量和方法类的成员默认为public,也支持private、protected类中无法定义静态成员变量和方法类无需明确定义构造方法ScalaModifier lClass Companion Subclass Package Wor

2020-10-27 19:24:22 220 1

原创 大数据之Phoenix安装、配置和使用

安装和配置Phoenix把下载好的安装包放入software目录下 解压Phoenix到opt目录下[root@hadoop100 software]# tar -zxvf apache-phoenix-4.14.0-cdh5.14.2-bin.tar.gz -C /opt进入Phoenix的bin目录下把phoenix-4.14.0-cdh5.14.2-server.jar包复制到hbase目录下的lib目录下配置hbase-site.xml文件[root@hadoop100

2020-09-26 14:24:15 379

原创 大数据之HBase Java API

HBase API官方最常用API为Java支持完整的HBase命令集External API:REST、Scala、Python等http://hbase.apache.org/book.html#external_apisAPI类型 API信息 Java https://hbase.apache.org/apidocs/ Python https://happybase.readthedocs.org/en/latest/ Scala Through

2020-09-26 14:19:20 140

原创 hadoop之HBase基础

什么是NoSQLNoSQL:not only SQL,非关系想数据库NoSQL是一个通用术语指不遵循传统RDBMS模型的数据库 数据是非关系的,且不使用SQL作为主要查询语言 解决数据库的可伸缩性和可用性问题 不针对原子性或一致性问题为什么使用NoSQL互联网的发展,传统关系型数据库存在瓶颈高并发性 高存储性 高可用性 高扩展性 低成本NoSQL和关系型数据库对比主要有以下一些区别对比 NoSQL 关系型数据库 常用数据库 HBase.

2020-09-24 18:39:23 102

原创 Apache Hive高级查询

一、Hive的数据查询(select)select用于映射符合指定查询条件的行Hive SELECT是数据库标准SQL的子集使用方法类似于MySQLSELECT 1;SELECT [DISTINCT] column_nam_list FROM table_name;SELECT * FROM table_name;SELECT * FROM employee WHERE name!='Lucy' LIMIT 5;CTE和嵌套查询-- CTE语法WITH t1 AS (S

2020-09-22 19:22:54 105

原创 Apache Hive基础

什么是Hive?基于Hadoop的数据仓库解决方案将结构化的数据文件映射为数据库表提供类sql的查询语言HQL(Hive Query Language)Hive让更多的人使用HadoopHive的优势和特点提供了一个简单的优化模型HQL类SQL语法,简化MR开发支持在不同的计算框架上运行支持在HDFS和HBase上临时查询数据支持用户自定义函数、格式成熟的JDBC和ODBC驱动程序,用于ETL和BI 稳定可靠(真实生产环境)的批处理有庞大活跃的社区Hive

2020-09-16 14:44:02 126

原创 MapReduce原理及编程

Hadoop架构HDFS——分布式文件系统 MapReduce——分布式计算框架 YARN——分布式资源管理系统 CommonMapReduce什么是MapReduceMapReduce是一个分布式计算框架它将大型数据操作作业分解为可以跨服务器集群并行执行的单个任务适用于大规模数据处理场景每个节点处理存储在该节点的数据每个job包含Map和Reduce两部分MapReduce的设计思想分而治之简化并行计算的编程模型构建抽象模型:Map和Reduce开发人员专

2020-09-16 08:40:07 172

原创 hadoop----HA高可用集群搭建

搭建HA高可用集群1.首先我们需要一台伪分布式虚拟机将此虚拟机克隆三份,修改三台虚拟机的网络地址和主机名三台机子拟定名为:hadoop001 hadoop002 hadoop003拟定hadoop001为主节点 hadoop002 hadoop003为备用节点主机名 ip地址 namenode QuorumPeerMain JournalNode NodeManager JobHistoryServer DataNode DFSZKF...

2020-09-15 19:29:58 188

原创 分布式应用协调服务Zookeeper

ZooKeeper简介Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目Zookeeper=文件系统+通知机制zookeeper从设计模式上来看是一个基于观察者模式设计的分布式服务管理框架, 它负责存储和管理大家都关心的数据,然后接受观察者的注册 一旦数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应,从而实现集群中类似Master/Slave管理模式ZooKeeper数据结构znodeZooK

2020-09-15 18:56:21 106

原创 分布式资源调度框架YARN

YARN的前世今生Hadoop1.x版本中最大的问题是资源问题对数据的处理和资源调度主要依赖MapReduce完成,只能运行MapReduce程序JobTracker负责资源管理和程序调度,压力较大Hadoop2.x版本添加YARN主要负责集群资源管理YARN概述YARN(Yet Another Resource Negotiator)核心思想是将资源管理和任务的监控和调度分离通用的资源管理系统,可为不同的应用(MapReduce、Spark、Flink等)提供统一的资.

2020-09-15 18:49:54 98

原创 hadoop之hive安装和配置

安装Hive前,需要准备的条件1.java环境2.hadoop环境3.mysql环境安装Hive进入software目录解压hive-1.1.0-cdh5.14.2.tar.gz到opt目录下[root@hadoop100 ~]# cd /software[root@hadoop100 software]# tar -zxvf hive-1.1.0-cdh5.14.2.tar.gz -C /opt[root@hadoop100 software]# cd /opt[roo

2020-09-15 09:00:21 166

原创 hadoop之hbase安装

安装HBase前,需要的准备条件1.HBASE运行需要JDK2.HBase的底层存储依赖于HDFS,需要安装hadoop环境3.HBase依赖于ZooKeeper来做分布式协调工作,所以需要安装Zookeeper的环境,博主所用的伪分布式,所以不用hbase内置的安装HBase把hbase-1.2.0-cdh5.14.2.tar.gz解压到opt目录下移动到opt目录把hbase-1.2.0-cdh5.14.2改名[root@hadoop100 software]# t

2020-09-15 08:52:17 463

原创 zookeeper的安装配置和zookeeper集群的时区同步配置

zookeeper环境变量配置和文件配置[root@hadoop01 software]# cd /opt/[root@hadoop01 opt]# mv zookeeper-3.4.6 zkpr[root@hadoop01 opt]# source /etc/profile进入zkpr配置文件的目录配置文件zoo.cfg[root@hadoop01 opt]# cd zkpr/conf/[root@hadoop01 conf]# vi zoo.cfgtickTime=2

2020-09-09 20:02:22 139

原创 hadoop集群

克隆虚拟机关闭已经安装和配置好的hadoop虚拟机。右击虚拟机,选择管理,选择克隆更改设置把三台虚拟机都开启。使用root用户登录。vi /etc/sysconfig/network-scripts/ifcfg-ens33systemctl restart networksystemctl disable firewalld#第一台克隆机hostnamectl set-hostname hodoop06#第二台克隆机hostnamectl set-hostname

2020-09-09 19:31:44 87

原创 Linux常用命令

Linux常用命令目录命令:增加目录mkdir [/路径/]目录名 删除目录rmdir [/路径/]目录名 改变目录 复制:cp 原路径 新路径 cp -r 复制文件夹 移动/重命名:mv 原路径 新路径查看目录: 查看当前路径:pwd 切换到路径:cd 查看目录内容:ls -a展示所有文件(包括隐藏文件) -A(不包括当前目录.和父目录..) -l展示所有文件的详细信息 -R递归查找所有子功能 文件命令创建文件touch [/路径/]文件名删

2020-09-02 14:25:27 103

原创 mysql语句练习

建表并插入数据# tb_classCREATE TABLE tb_class( cid INT(11) AUTO_INCREMENT PRIMARY KEY, cname VARCHAR(50) NOT NULL);# tb_class数据INSERT INTO tb_class(cname) VALUES('KB01'),('KB02'),('KB03'); # tb_studentCREATE TABLE tb_student( sid INT(11) AUTO_INCREMEN

2020-09-02 14:17:49 148

原创 mysql对表的一系列操作

在Mysql数据定义语言一文中,我们了解到mysql命令可分为DDL、DML、DQL、DCL,在本文将为读者介绍DML:insert、update、delete数据插入insert语法:INSERT INTO 表名 [(字段1,字段2,字段3, … )] VALUES ('值1','值2','值3', …)注意:①字段或值之间用英文逗号隔开②“字段1, 字段2…”该部分可省略,但添加的值务必与表结构数据列顺序相对应,且数量一致③可同时插入多条数据,values 后用英文逗号隔开

2020-08-13 09:16:17 122

原创 mysql库的一系列操作

结构化查询语句分类对于不同的命令, 可分为四类分别为DDL、DML、DQL、DCL,下图分别作了详细的介绍数据定义语言DDLDDL的命令有个3个:创建create、删除drop、修改altercreate语句创建数据库: CREATE TABLE [ IF NOT EXISTS ] `表名`( `字段名1` 列类型 [ 属性 ] [ 索引 ] [注释] , `字段名2` 列类型 [ 属性 ] [ 索引 ] [注释] , … … `字段名n`

2020-08-13 09:12:29 90

原创 linux安装mysql

配置虚拟机网络centos7的安装请读者参考vmware安装虚拟机Centos7centos7 创建完成后,我们需要对虚拟机的网络进行配置:输入下列命令:vi /etc/sysconfig/network-scripts/ifcnf-ens33到如下界面: 按下i键,将光驱移到对应行,修改以下信息BOOTPROTO=static(仅主机模式)ONBOOT=yes// 在最后一行后加上IPADDR=ip地址(将最后的修改与主机在一个网段即可)如果不知道ip地址是什么,请如

2020-08-13 09:05:27 107

原创 XML和JSON基础

XMLXML(EXtensible Markup Language):可扩展标记语言。XML与操作系统、编程语言的开发平台无关,能够用于实现不同系统之间的数据交换。XML的作用①数据交互②配置应用程序和网站③Ajax基石XML文档结构XML文档结构:1.声明 一般是XML文档的第一行2.文档描述信息声明的组成:version:文档符合xml1.0规范encoding:文档字符编码,默认为UTF-8文档结构解释:根元素:只有一个根元素的开始标签:放在最前面根元素的

2020-08-13 09:02:38 130

原创 Java之反射机制

反射反射:是指在程序运行期间,能够观察和修改类或者类的对象的属性和行为的特性项目开发中常见的使用反射的场景:①使用JDBC连接数据库②Servlet在Web容器中的加载和运行反射的作用:Java反射机制提供了以下的功能①在运行时获取类的修饰符,包名,类名,实现的接口,继承的父类②在运行时获取类的所有属性名,修饰符,属性类型③在运行时获取所有方法,方法的返回值类型,方法名,方法参数数量,方法参数类型④在运行时调用加载类的方法Java反射API常用的类①java.lang.Cl

2020-08-07 11:58:04 74

原创 Java容器之Map

Map接口Map接口专门处理键值映射数据的存储,可以根据键实现对值的操作。HashMap是Map最常用的实现类常用方法Map常用方法演示:public class TestMap { public static void main(String[] args) { HashMap map = new HashMap(); map.put("CN", "中华人民共和国"); map.put("UK", "大不列颠联合王国");

2020-07-30 09:39:02 107

原创 Java之异常处理

在我们编程时经常会出现各种各样的错误和问题,对于那些编译通过但是运行出现的错误我们一般称为:异常异常的概念异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序程序运行——>遇到异常——>程序中断运行异常处理Java编程语言使用异常处理机制为程序提供了错误处理的能力Java的异常处理是通过5个关键字来实现的:try、catch、 finally、throw、throwstry—catch块try-catch的结构如下:try { //

2020-07-27 09:31:07 362

原创 Java面向对象(重写,多态)

往往在继承的子类与父类中存在大量的冗余代码,这时候我们就需要用到重写来减少代码的行数,方便查看。方法重写:有以下几个关键地方要实现重写我们需要:要有继承关系 子类与父类有同名方法 1.方法名相同 2.参数列表相同 3.返回值类型相同,或者是父类返回值类型的子类 4.访问修饰符的权限不能小...

2020-07-23 10:11:46 209

原创 Java面向对象(封装,static,继承)

Java有三大特性:封装、继承、多态。今天作者将下封装和继承。封装顾名思义就是将一段代码装起来,类似于装进一个盒子,并留出一个出口来方便使用。这样做的好处就是能够是我们的属性在赋值时能够更加规范化,同时在我们进行操作时免除不必要的判断,因为我们的判断已经写到setter方法里面了。步骤一:新建实体类,并生成属性。 private int a; private int b; private String c;步骤二:创建setter/getter方法。

2020-07-21 20:16:45 141

原创 Java高级(面向对象概念及编程小练)

一、面向对象的基本概念1.面向对象Java语言是一种面向对象的语言。要使用Java进行面向对象的编程,首先要建立面向对象的思想。面向对象是一种直观而且程序结构简单的编程设计方法,它比较符合人类认识现实世界的思维方式。其基本思想是把问题看成是若干个对象的组成,这些对象之间是独立的,但又可以相互配合,链接和协调,从而共同完成整个程序要实现的任务和功能。面向对象的三大特征:封装、继承和多态。2.对象对象是用来描述客观事物的一个实体。面向对象方法解决问题时,要对现实世界中的对象进行分析和归纳,找出哪些对象

2020-07-19 22:16:33 242

原创 Java循环练习(多重循环,break,continue)

多重循环多重循环就是一个循环体内包含另一个完整的循环结构,但一般不超过三层。嵌套循环可以是while、do-whiile、for相互嵌套。// 利用多重循环打印平行四边形for (int i = 0; i <5 ; i++) { //输出空格 for(int j = 5-i-1;j>0;j--){ System.out.print(" "); } // 输出*号 for(int a = 0;a<5;a++){ System.out

2020-07-12 23:02:37 438

原创 Java入门循环练习(for,while,do....while)

在我们Java中有三种比较常用的循环结构它们是for循环,while循环,do...while循环。总结它们的区别: ①语法: ②执行顺序: while 循环:先判断,再执行 do-while循环:先执行,再判断 for循环:先判断,再执行 ...

2020-07-09 19:36:12 527

空空如也

空空如也

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

TA关注的人

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