3 wangyangmingtian

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 12w+

spark分组求解前百分之十

上面两篇文章介绍了一下使用spark分组求解top值的两种方式,我们在日常工作中也可能会遇到另外一种情况,即对源数据求解每个分组的前百分之多少的情况,这种情况如何解决呢,其实和分组求top的方式类似,只不过该种情况会使用另外一种窗口函数percent_rank(),下面简单说明一下:一:java版本1.准备原始数据原始数据datasetMarket=spark.read.parquet("basePath").select("学校", "班级","成绩")2.对要进行分组的数据分组进行排序,

2020-08-28 15:23:57

sparkSql分组求top值

上篇文章中介绍了使用JAVA版本的分组求top值,下面介绍一下使用sparkSql分组求top1.首先准备源数据datasetMarket=spark.read.parquet("basePath").select("学校", "班级","成绩")2.创建临时视图在获取源数据之后,对数据创建临时视图,格式如下:datasetMarket.createTempView("groupTop")3.核心语句,分组top值spark.sql(select "学校, 班级,成绩 fro

2020-08-28 15:08:15

spark分组求top值JAVA版本

在工作中我们常常会遇到在一堆数据中求top值的问题,也会遇到分组求top值的现象,分组如何求解呢?这时候我们可以借助窗口函数进行实现,在spark中使用row_number进行实现。本文的实现使用的是java版本实现,并不是使用spark sql实现的,因为使用spark sql实现需要使用临时视图,比较麻烦,下次补充spark sql版本。原始数据datasetMarket=spark.read.parquet("basePath").select("学校", "班级","成绩")1.首先对要进行

2020-08-27 14:51:00

Error: A JNI error has occurred, please check your installation and try again

当在idea运行程序的时候,如果出现Error: A JNI error has occurred, please check your installation and try again这个错误的话,如果紧接着出现以下的相似异常抛出:即各种类找不到,出现这种错误的原因实际上就是pom文件中依赖的包在运行的时候没有被导入,此时对应导入的依赖的scope的标签值为provided,而在idea中如果不进行设置的话,idea默认是不加载provided的依赖的,因此需要在idea中进行设置,使idea

2020-05-22 15:43:07

Mac终端命令大全

Mac终端命令大全下面列举出了一些Mac常用的命令:目录的相关操作命令名 功能描述 示例mkdir 创建一个新的目录 mkdir dirnamermdir 删除一个目录 rmdir dirnamemvdir 移动/重命名一个目录 mvdir dir1 dir2cd 进入新的目录 ...

2020-05-22 11:01:07

Exception in thread main java.lang.NoClassDefFoundError: org.apache.spark.sql.SparkSession

在运行程序的过程中报了A JNI error has occurred, please check your installation and try again错误,具体异常信息如下图所示:从异常中看到是无法找到sparkSession类,但是我在maven中已经引入了该依赖,却依然出现异常,这个时候可以查看pom文件引入的依赖中scope标签中的内容,其中scope标签中对应的参数有如下几种:1.compile默认的scope,表示 dependency 都可以在生命周期中使用。而且,.

2020-05-19 17:12:44

报错No implicits found for parameter evidence$6: Encoder

记录一个在写spark项目的时候碰到的一个问题No implicits found for parameter evidence$6: Encoder这个问题的实质就是我们需要对当下类型的变量进行map操作,但是此时出现的问题是不能进行map操作,本人的解决办法是,在相关的变量语句之前添加一行导入操作便能解决问题,导入语句为:import spark.implicits._这样操作之后便能够继续使用map操作了。...

2020-05-13 09:48:44

Mac下安装numpy,pandas,matplotlib

mac下由于自带python,并且版本为2,因此本人在自己的电脑上安装了python3。由于需要需要安装numpy和pandas等,因此才用了常用的命令:pip install pandas但是出现以下问题,并且安装的包无法使用:从信息中可以发现,包被安装在了python2版本之下,但是使用的是python3,因此需要执行以下的命令才能生效:python3 -m pip install pandaspython3 -m pip install wordcloudpython3 .

2020-05-09 14:44:39

使用jupyter时报错:IOPub data rate exceeded.

本人在使用jupyter的时候,出现了一个错误:IOPub data rate exceeded.详细信息如下:处理这个问题很简单,只需要修改配置文件中的配置即可,接下来介绍一下解决方案。首先需要找到配置文件,在终端使用命令jupyter notebook --generate-config即可找到配置文件的存储路径,之后可以输入vim修改配置文件的内容:从异常信...

2020-04-30 17:15:36

初始spark(四)之spark存储管理

我们在使用spark进行数据相关的操作的时候,经常会用到的是RDD,但是我们也都知道RDD是一个抽象的数据集,并不是真正的数据存储的地方,RDD使我们对数据的操作更方便,其实RDD的出现避免了我们对数据存储底部的接触,可以更方便的编写我们的应用。其实数据的存储都是由spark的存储管理模块实现和管理的。spark存储管理模块的整体架构:从架构上可以将存储架构管理模块分为通信层和存储层两个部分。...

2020-04-29 15:44:02

认识ETL

大数据中经常会遇到的一个概念就是ETL,接下来就来探讨一下ETLETL是指将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,主要的作用就是将企业的一些杂乱无章的数据进行一个汇总,为相关的企业提供数据的支持。ETL主要分为了三个阶段:数据抽取、数据清洗转换、数据的加载。数据的抽取:就是从原始的数据源中将数据抽取到ODS层。在数据抽取的时候,首先需要进行相关的调研,比如数据的存储...

2020-04-29 14:32:08

初始spark(三)之宽窄依赖以及stage的划分

一:宽窄依赖的概念提起spark中涉及到的RDD,那么我们也会很容易的想到的问题是,RDD的一系列操作转化操作,转化操作其实就是将一个RDD转化为另一个RDD,那么在产生新的RDD和旧的RDD的关系就属于依赖关系,而RDD之间的依赖关系可以分为宽依赖和窄依赖两种依赖关系。窄依赖:具体的含义是指父RDD和子RDD之间的partition之间属于一对一的关系。也可以认为一个父RDD的parti...

2020-04-23 17:30:16

初始spark(二)之RDD

我们都知道spark是能够并行的计算,并且是基于内存的,这大大的提升了计算的效率,spark在进行计算的时候,需要借助于SparkContext(驱动程序器),将数据分散到集群中,并在节点中并行的开启计算,最终再将计算的结果进行汇总。一:RDD提到数据计算,不得不提到spark中的一个重要的概念,那就是RDD(弹性分布式数据集),从名称来看便知RDD是分布在集群中的,spark计算主要是针...

2020-04-10 15:23:39

初始spark(一)

spark定义: spark是一个实现快速通用的集群计算平台。通用内存并行计算框架,主要用来构建大型的、低延迟的数据分析应用程序。spark优点: 使用spark肯定有其特别之处,spark在计算数据的时候与MapReduce相比,spark的计算是基于内存的,并可以依赖内存机型复杂的计算,这在计算的速度上有大的提升,相比较MapReduce有很大的性能...

2020-04-10 15:18:39

初解数据库——存储引擎

数据的基本知识说完之后,下面会介绍一些数据库的存储引擎,存储引擎是数据库的核心部分,数据库常见的存储引擎包括:InnoDB,MyISAM,MEMORY。MyISAM:该存储引擎是不支持事务的,也不支持外键,由于不支持事务,所以它的查询速度很快,对事务的完整性没有要求,并且支持表级锁,采用的是非聚簇索引,存储了表的总行数。InnoDB:该存储引擎具有回滚,提交和崩溃恢复的能力,支持事务,以及...

2019-10-24 10:48:16

初解数据库——事务

作为程序猿我们都应该清楚,不管是在求职面试的过程中还是在平常的开发中,数据库起了很重要的作用,数据库又分为关系型数据库和非关系型数据库。接下来将会介绍一些数据库方面的基础知识。提起数据库我们想到的就是我们常常编写的一些sql语句,那这些sql语句在执行的过程中,怎么执行的,什么时候结束,这时候边涉及到一个名词——事务。事务通俗地讲就是表示的是一系列命令的集合,它是并发控制的基本单元。事务具有四...

2019-10-24 10:01:12

Java并发机制及锁的实现原理

转发原文链接:https://blog.csdn.net/sunxianghuang/article/details/51932179Java并发编程概述并发编程的目的是为了让程序运行得更快,但是,并不是启动更多的线程就能让程序最大限度地并发执行。在进行并发编程时,如果希望通过多线程执行任务让程序运行得更快,会面临非常多的挑战,比如上下文切换的问题、死锁的问题,...

2019-03-31 09:28:45

TCP连接的建立(三次握手)与释放(四次挥手)

TCP连接的建立采用的是客户服务器方式,主动要求建立连接的为客户端,被建立连接的成为服务器。1.TCP连接的建立在讨论建立连接的过程中,先上图这样会帮助理解,如下图所示:从上图可知,B作为服务器作为被建立连接方,在建立连接之前,客户端和服务端均处于关闭状态。其中服务器端先创建控制传输块TCB,此时服务器端处于监听状态(即时刻监听客户端发送的连接请求)。客户端A的TCP进程也会创...

2019-03-14 21:31:08

Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)

转载出处:http://blog.csdn.net/anxpp/article/details/51512200,谢谢!    本文会从传统的BIO到NIO再到AIO自浅至深介绍,并附上完整的代码讲解。    下面代码中会使用这样一个例子:客户端发送一段算式的字符串到服务器,服务器计算后返回结果到客户端。    代码的所有...

2019-03-06 19:40:47

抽象类(abstract class)和接口(interface)的区别

在介绍两者的区别的时候,需要先了解一下两者的定义:抽象类:简单粗暴的描述是包含抽象方法的类,但是这样定义并不准确,因为抽象类也可以不含有抽象方法,即使用abstract修饰的类必为抽象类,一定要注意:一个类如果含有抽象方法,则该类一定为抽象类;但是抽象类并不一定含有抽象方法。抽象类是不能被实例化的。接口:泛指供其他类调用的方法或者函数。接口中的方法均为抽象方法,接口也是不能被实例化的。...

2019-01-01 15:39:25

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 阅读者勋章Lv1
    阅读者勋章Lv1
    授予在CSDN APP累计阅读博文达到3天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享学徒
    分享学徒
    成功上传1个资源即可获取