在过去的几个月里,我断断续续写了Spark,Spark SQL, Spark Streaming相关的文章,自己也对Spark有了一个基本的认识。 但是仅仅这样不能算学会了spark。 回想过去一年里看过的书,只有那些写过博客的内容才印象深刻,其他的书甚至都忘了讲什么的。 再加上最近我一直在思考怎么才算掌握spark,用spark 能解决什么问题? 正所谓纸上得来终觉浅,绝知此事要躬行。所以我写这篇Spark RDD…
有问题,先站内搜索
在过去的几个月里,我断断续续写了Spark,Spark SQL, Spark Streaming相关的文章,自己也对Spark有了一个基本的认识。 但是仅仅这样不能算学会了spark。 回想过去一年里看过的书,只有那些写过博客的内容才印象深刻,其他的书甚至都忘了讲什么的。 再加上最近我一直在思考怎么才算掌握spark,用spark 能解决什么问题? 正所谓纸上得来终觉浅,绝知此事要躬行。所以我写这篇Spark RDD…
Spark Streaming(二) Structed Streaming 本文详细介绍下Spark Streaming的第二代引擎Structed Streaming,包括Structed Streaming的概述,核心概念, Structed Streaming相关的应用等。…
本文介绍流处理的概念,流处理引擎环境和Apache Spark Streaming概述。 流处理 批数据处理是指通过固定的输入数据集运行计算逻辑,并在结束时产生结果。这意味着处理将在到达数据集末尾时停止。 相比之下,流处理是关于通过无界数据集运行计算逻辑,因此处理是连续且长时间运行的。 虽然批处理数据与流数据的区别主要在于有限性,但由于流数据的无界数据性质、实时数据的传入顺序、 数据到达的不同速率以及面对机器故障时对正确性和低延迟的期望,流数据处理要比批数据处理复杂得多,也更具挑战性。 流处理的挑战 流数据处理有它自己的一组独特的挑战,这些挑战是处理连续和无界数据的结果。…
SparkSQL 高级篇(二) 连接操作 连接操作由连接表达式和连接类型两部分组成。 连接表达式指定了通过数据集中的哪一列进行连接。而连接类型决定了连接后的数据集包含什么内容。 SparkSQL 支持以下连接类型: – 内连接(Inner join)…
如何解决windows下执行“spark.sql()”报错Failed to start database ‘metastore_db’ with class loader 现象描述 执行DataFrame的相关操作时可以正常运行,但是执行spark.sql()这个会出现下面的错误…
访问博客网站发现Establishing a Database Connection Error。 解决过程: 1. 检查mysql 发现mysql进程关闭 重启mysql…
聚合操作 聚合操作是大数据分析过程中一个常用的操作,用来分析汇总数据,或者生成汇总报告。 聚合通常需要对整个数据集或一个或多个列进行某种形式的分组,然后对每个组应用聚合函数,如求和、计数或求平均值。Spark提供了许多常用的聚合函数。这里介绍下基本的聚合函数和分组聚合操作函数。 首先创建一个用于demo的DataFram val flight_summary = spark.read.format(“csv”).option(“header”,”true”) .option(“inferSchema”,”true”).load(“flight-summary.csv”) flight_summary.count()…
DataFrames是不可变的,且与其相关的Transformation操作和RDD的相关操作一样都是返回一个新的DataFrame. DataFrames Transformations select selectExpr filter/where distinct/dropDuplicates sort/orderBy limit union…
Spark SQL包含两个主要的部分,第一部分是DataFrames和Datasets, 第二部分是Catalyst optimizer. DataFrames和Datasets是结构性API的展示,定义了操作结构化数据的高层次API, 而Catalyst optimizer则是在背后对处理数据的逻辑进行优化,以加速处理数据的速度。 结构化数据通常有确定的格式,比如文本类数据格式CSV, XML, JSON。还有二进制数据:Avro,…
本篇文章主要介绍和key/value pair RDD相关的转换(transformation)和动作(action)操作。 键值对RDD和普通RDD不同,在普通RDD中,一行数据代表一个单独的值,比如一个整数或者一个字符串。 而键值对RDD中一行数据是一个元组,在元组中第一个元素是key值,第二个元素值vaule值。 key和value的类型可以是简单类型也可以是负责的object或者另一个元组的结合。 如何创建一个key/value pair RDD呢? val…