上一节简单介绍了Spark的基本原理以及如何调用spark进行打包一个独立应用,那么这节我们来学习下在spark中如何编程,同样先抛出以下几个问题. Spark支持的数据集,如何理解? Spark编程中常用到的操作? 一.RDD基础 1.RDD简介 在上一节的组件图Spark Core中我们简单提到了对弹性分布式数据集:RDD(Resilient Distributed DataSet),它表示分布在多个计算节点上可以并行操作的元素集合,是Spark主要得编程抽象.一般我们广为熟知的数值类型是整…
初次尝试用 Spark+scala 完成项目的重构,由于两者之前都没接触过,所以边学边用的过程大多艰难.首先面临的是如何快速上手,然后是代码调优.性能调优.本章主要记录自己在项目中遇到的问题以及解决方式,下篇会尝试调优方法.末尾会分享自己的学习资料,也供大多菜鸟第一次使用作为参考.由于自己项目中大量使用spark sql,所以下面的经验大多是和spark sql有关.同样下面也列出作为菜鸟在学习过程中的困惑以及踩的坑,还请大牛勿笑 ~_~ 如果有更好的方式解决,欢迎留言,一起学习. 1.常用场景…
由于最近在工作中刚接触到scala和Spark,并且作为python中毒者,爬行过程很是艰难,所以这一系列分为几个部分记录下学习<Spark快速大数据分析>的知识点以及自己在工程中遇到的小问题,以下阶段也是我循序了解Spark的一个历程. 先抛出几个问题: 什么是Spark? Spark内部是怎么实现集群调度的? 如何调用Spark? 如何打包一个Spark独立应用? 一.Spark是什么 Spark是一个用来实现快速而通用的集群计算平台.它一个主要特点是能够在内存中进行计算,并且提供了基于P…
前几节介绍了下常用的函数和常踩的坑以及如何打包程序,现在来说下如何调参优化.当我们开发完一个项目,测试完成后,就要提交到服务器上运行,但运行不稳定,老是抛出如下异常,这就很纳闷了呀,明明测试上没问题,咋一到线上就出bug了呢!别急,我们来看下这bug到底怎么回事~ 一.错误分析 1.参数设置及异常信息 18/10/08 16:23:51 WARN TransportChannelHandler: Exception in connection from /10.200.2.95:40888 ja…
一.背景 处理json格式的字符串,key值一定为String类型,但value不确定是什么类型,也可能嵌套json字符串,以下是使用 JSON.parseFull 来解析多层json. 二.实例代码 import collection.mutable.Map import scala.util.parsing.json._ def regJson(json:Option[Any]) = json match { //转换类型 case Some(map:collection.immutable…
在做spark项目时,我们常常面临如何在本地将其打包,上传至装有spark服务器上运行的问题.下面是我在项目中尝试的两种方案,也踩了不少坑,两者相比,方案一比较简单,本博客提供的jar包适用于spark版本2.0以下的,如果jar包和版本不对应会出现找不到类或方法等错误提示信息,它主要借助于eclipse和现成的jar包进行打包应用,只能从官网上下载对应的jar包,局限很大.方案二是借助于IntelliJ + maven方式,它只要配置好pom.xml文件,在文件中写明自己的运行环境即可,通用(…
RDD 介绍 spark 最重要的一个概念叫 RDD,Resilient Distributed Dataset,弹性分布式数据集,它是 spark 的最基本的数据(也是计算)抽象. 代码中是一个抽象类,它代表一个 不可变.可分区.里面的元素可并行计算的数据集合. RDD 的属性 拥有一组分区:数据集的基本组成单位 拥有一个计算每个分区的函数 拥有一个分区器,partitioner,即 RDD 的分片函数 RDD 间存在依赖关系 [下面 RDD 特点中有解释] 拥有一个列表,存储每个 parti…
spark中常用的两种数据类型,一个是RDD,一个是DataFrame,本篇主要介绍RDD的一些应用场景见代码本代码的应用场景是在spark本地调试(windows环境) /** * 创建 sparkSession对象 */ val sparkSession = SparkSession.builder() .appName("TextFile") .master("local") .getOrCreate() word.txt 的文本内容如下 wordcount:…
2015-11-11 ----------------------------------------------------------------------------------- 其实,写博客是很消耗时间的,尤其是新手玩家.但凡事不妨一试,再说它也可以反过来倒逼 我坚持学习这个领域的知识,也不失为自我暗示的好方法. 鉴于过往的学习体验,往往是零零碎碎地接收一堆杂乱知识,不能很好地消化,仿若段誉短时 间吸收以大众人的内力,反倒自食其害.苦了现在还需腾出大量时间整理.也因有了这么一遭 领悟…
正好通过这次 Telegram 的运行,很想把常见的项目运行的错误好好的总结一下,在前面的博客中,又星星散散的总结过错误和一些警告的消除方法,这次把错误处理一下,还有Telegram项目中有999+的警告,我这种有洁癖的人,哈哈~准备把警告也消除一下,到时候再整理一篇警告消除的方法,还有以前的那些警告和错误消除的方法,都总结出来,希望可以帮到有需要的同学. 当然我们所要说的这些,都是围绕着Telegram展开的,先看看你下载了Telegram的源码的时候,会最先看到的问题,看下图: 这个是最简单…