摘要:NO: Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of
阅读全文
摘要:NO: Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of
阅读全文
摘要:一、SQL解析过程 ### sql解析过程 ~~~ Spark SQL 可以说是 Spark 中的精华部分。 ~~~ 原来基于 RDD 构建大数据计算任务,重心在向 DataSet 转移,原来基于 RDD 写的代码也在迁移。 ~~~ 使用 Spark SQL 编码好处是非常大的,尤其是在性能方面,有
阅读全文
摘要:一、Spark SQL原理 ### SparkSQL中的join ~~~ 数据分析中将两个数据集进行 Join 操作是很常见的场景。 ~~~ 在 Spark 的物理计划阶段, ~~~ Spark 的 Join Selection 类会根据 Join hints 策略、Join 表的大小、 ~~~ J
阅读全文
摘要:一、访问Hive ### 在 pom.xml文件中增加依赖: <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-hive_2.12</artifactId> <version>${spark.version}</ve
阅读全文
摘要:NO: Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of
阅读全文
摘要:一、UDAF ### UDAF ~~~ # 数据如下: id, name, sales, discount, state, saleDate 1, "Widget Co", 1000.00, 0.00, "AZ", "2019-01-01" 2, "Acme Widgets", 2000.00, 5
阅读全文
摘要:一、UDF ### UDF ~~~ UDF(User Defined Function),自定义函数。 ~~~ 函数的输入、输出都是一条数据记录,类似于Spark SQL中普通的数学或字符串函数。 ~~~ 实现上看就是普通的Scala函数; ~~~ UDAF(User Defined Aggrega
阅读全文
摘要:一、SQL语句 ### SQL语句 ~~~ 总体而言:SparkSQL与HQL兼容;与HQL相比,SparkSQL更简洁。 ~~~ createTempView、createOrReplaceTempView、spark.sql("SQL") 二、SQL语句执行说明 三、编程实现 ### 编程实现
阅读全文
摘要:一、输入与输出 ### 输入输出 ~~~ SparkSQL内建支持的数据源包括: ~~~ Parquet、JSON、CSV、Avro、Images、BinaryFiles(Spark 3.0)。其中Parquet是默认的数据源。 ### 输入输出实验 ~~~ # 内部使用 DataFrameRead
阅读全文
摘要:一、Transformation 操作 ### select * from tab where ... group by ... having... order by... # 1、RDD类似的操作持久化 ~~~ 缓存与checkpoint ~~~ select ~~~ where ~~~ grou
阅读全文
摘要:一、三者的转换 ### RDD、DataFrame、Dataset三者之间转换 ~~~ SparkSQL提供了一个领域特定语言(DSL)以方便操作结构化数据。 ~~~ 核心思想还是SQL;仅仅是一个语法的问题。 二、Action操作 ### Action操作 ~~~ # 与RDD类似的操作 ~~~
阅读全文
摘要:一、Spark SQL编程 ### sparkseeion官方地址 ~~~ 官方文档:http://spark.apache.org/docs/latest/sql-getting-started.html ### SparkSession ~~~ 在 Spark 2.0 之前: ~~~ SQLCo
阅读全文
摘要:一、DataFrame & Dataset 的创建 ### DataFrame & Dataset 的创建 ~~~ 不要刻意区分:DF、DS。DF是一种特殊的DS;ds.transformation => df ### 由range生成Dataset scala> val numDS = spark
阅读全文
摘要:一、SparkSQL ### Spark SQL概述 ~~~ Hive的诞生,主要是因为开发MapReduce程序对 Java 要求比较高, ~~~ 为了让他们能够操作HDFS上的数据,推出了Hive。 ~~~ Hive与RDBMS的SQL模型比较类似,容易掌握。 ~~~ Hive的主要缺陷在于它的
阅读全文
摘要:一、RDD编程优化 ### RDD复用 ~~~ 避免创建重复的RDD。在开发过程中要注意: ~~~ 对于同一份数据,只应该创建一个RDD,不要创建多个RDD来代表同一份数据。 ### RDD缓存/持久化 ~~~ 当多次对同一个RDD执行算子操作时,每一次都会对这个RDD以之前的父RDD重新计算一次,
阅读全文
摘要:NO: Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of
阅读全文
摘要:一、Shuffle原理 ### shuffle原理 ~~~ Shuffle的本意是洗牌,目的是为了把牌弄乱。 ~~~ Spark、Hadoop中的shuffle可不是为了把数据弄乱, ~~~ 而是为了将随机排列的数据转换成具有一定规则的数据。 ~~~ Shuffle是MapReduce计算框架中的一
阅读全文
摘要:一、TopN编程代码 ### TopN编程代码优化 package cn.yanqi.sparkcore import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} import scala.co
阅读全文
摘要:一、Spark原理初探:Standalone模式作业提交 ### Standalone 模式下有四个重要组成部分,分别是: ~~~ Driver:用户编写的 Spark 应用程序就运行在 Driver 上,由Driver 进程执行 ~~~ Master:主要负责资源的调度和分配,并进行集群的监控等职
阅读全文