![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
sparksql
wtzhm
有梦想没有金钱,想健身没有时间!
展开
-
Spark概述详解
Spark概述详解1. spark概念官网:http://spark.apache.org,Spark是一种快速、通用、可扩展的大数据分析引擎。 Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL、Spark Streaming、GraphX、MLlib等子项目,Spark是基于内存计算的大数据并行计算框架。Spark基于内存计算,提高了在大数据环境下数...原创 2018-06-18 00:42:14 · 2617 阅读 · 0 评论 -
Rdd与DataFrame互操作
Rdd与DataFrame互操作1. spark通过StructType直接指定Schemaobject StructTypeBySchema { def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setAppName("StructTypeBySchema").setMas...原创 2018-11-23 18:15:10 · 157 阅读 · 0 评论 -
Spark SQL 外部数据源
Spark SQL 外部数据源1. 概述外部数据源API方便快速从不同的数据源(json,parquet,rdbms)引入处理数据,经过混合处理,写回到指定文件系统上去。2. 操作parquet文件数据读数据spark.read.format(“parquet”).load(path)spark.read.format(“parquet”).option(“path”," … "...原创 2018-11-22 16:43:02 · 231 阅读 · 0 评论 -
SparkSql处理日志后保存到mysql中
SparkSql处理后的数据保存到Mysql中1.原始JDBCobject SqlUtils { /** * 获取连接 */ def getConnection():Connection = { DriverManager.getConnection("jdbc:mysql://192.168.126.31:3306/sparklog?use...原创 2018-12-04 10:24:48 · 1410 阅读 · 0 评论 -
Spark运行的4种模式
Spark 运行的4种模式1. 4种运行模式概述图2. 不同的提交参数说明 ./bin/spark-submit \ //主类入口 --class <main-class> \ // 指定appname --name <appname> \ //pom依赖所需要的resource目录下的资源文件 --files ...原创 2018-12-05 16:57:33 · 3525 阅读 · 0 评论 -
SparkSq日志分析项目实践
Spark 日志分析项目实践总结1. 概述1). 用户日志:用户每次访问网站所有的行为(点击、浏览、访问、搜索)我们可以通过对日志的分析获取网站页面的访问量、网站的黏性、用户行为日志、推荐2). 用户行为日志内容3). 日志获取方式2.离线数据处理架构3. 数据清洗4. spark sql 业务逻辑处理1).使用 spark sql语句处理业务逻辑,关键代码如下//读取数...原创 2018-12-11 11:58:43 · 522 阅读 · 1 评论 -
回归spark30多个算子
回归spark30多个算子1. spark算子分类Transformation 变换/转换算子Transformation 操作是延迟计算的,也就是说从一个RDD 转换生成另一个 RDD 的转换操作不是马上执行,需要等到有 Action 操作的时候才会真正触发运算。Action 行动算子Action 算子会触发 Spark 提交作业(Job),并将数据输出 Spark系统。...原创 2019-01-11 10:06:38 · 257 阅读 · 0 评论 -
Spark 高性能算子
Spark 高性能算子1. map 与 mapPartitions1.优缺点mapPartition的优点:普通的map执行一个partition中有1.2万条数据。ok,那么function要执行和计算1.2万次。如果使用MapPartitions操作之后,一个task仅仅会执行一次function,function一次接收所有的partition数据。只要执行一次就可以了,性能比较高...原创 2019-01-11 17:25:39 · 1316 阅读 · 0 评论 -
Spark 的 Accumulator与 AccumulatorV2
Spark 的 Accumulator1.概述Accumulator累加器能精确地统计数据的各种属性,eg:可以统计符合条件的session,在一段时间段内产生了多少次购买,统计出各种属性的数据。2. 例子def main(args: Array[String]): Unit = { val conf = new SparkConf().setMaster(&amp;amp;quot;local[2]&amp;amp;quot;)....原创 2019-01-14 18:23:23 · 2507 阅读 · 0 评论 -
Spark自定义AccumulatorV2
Spark自定义AccumulatorV21.概述###AccumulatorV2的简单使用与注意事项见上一遍博客https://blog.csdn.net/wtzhm/article/details/86481846在实际开发中很多时候需要用到自定义Acummulator,Accumulator太多了,不便于维护,例如项目如果要出现一些逻辑上的变更,比如说,session数量的计算逻辑,...原创 2019-01-20 21:49:09 · 938 阅读 · 0 评论 -
Spark任务执行流程
Spark任务执行流程DAGScheduler 和TaskScheduler都在Driver端(开启spark-shell的那一端),main函数创建SparkContext时会使得driver和Master节点建立连接,Master会根据任务所需资源在集群中找符合条件的worker.然后Master对worker进行RPC通信,通知worker启动Executor ,Executor会和Dr...原创 2018-06-30 23:25:07 · 863 阅读 · 0 评论 -
Spark自定义分区
Spark分区与自定义分区1.概述分区是RDD内部并行计算的一个计算单元,RDD的数据集在逻辑上被划分为多个分片,每一个分片称为分区,分区的格式决定了并行计算的粒度,而每个分区的数值计算都是在一个任务中进行的,因此任务的个数,也是由RDD(准确来说是作业最后一个RDD)的分区数决定。2.分区原则RDD分区的一个分区原则:尽可能是分区的个数等于集群核数目无论是本地模式、S...原创 2018-06-29 11:53:41 · 1298 阅读 · 2 评论 -
Spark Streaming
Spark Streaming1. SparkStreaming概述Spark Streaming用于流式数据的处理,Spark Streaming有高吞吐量和容错能力强等特点。Spark Streaming支持的数据输入源很多,例如:Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等等。数据输入后可以用Spark的高度抽象原语如:map、reduce、join、w...原创 2018-07-27 15:14:32 · 216 阅读 · 0 评论 -
SparkSql编程
SparkSql编程1. 添加依赖文件首先在maven项目的pom.xml中添加Spark SQL的依赖&amp;amp;amp;amp;lt;dependency&amp;amp;amp;amp;gt; &amp;amp;amp;amp;lt;groupId&amp;amp;amp;amp;gt;org.apache.spark&amp;amp;amp;amp;lt;/groupId&a原创 2018-07-01 11:51:03 · 218 阅读 · 0 评论 -
SparkSQL整合 HIVE
SparkSQL整合 HIVE安装hive(配置好)将配置好的hive-site.xml放入$SPARK-HOME/conf目录下将mysql-xxx-connector-xx.jar放到spark集群中节点的lib目录下启动spark-shell时指定mysql连接驱动位置先启动spark:sbin/start-all.shbin/spark-shell \ --mast...原创 2018-11-13 11:41:41 · 245 阅读 · 0 评论 -
spark checkpoint
Spark的checkpoint1. 为什么要使用checkpoint当一个计算有上百个甚至更多个rdd的时候,如果前20个rdd的计算结果重复被使用,这个时候我们就可以使用checkpoint将前20个rdd的计算结果缓存到本地。大大提高运算效率,当RDD使用cache机制从内存中读取数据,如果数据没有读到,会使用checkpoint机制读取数据。此时如果没有checkpoint...原创 2018-06-30 21:36:52 · 1505 阅读 · 0 评论 -
Spark自定义排序
Spark自定义排序1. 概述 ###在spark中,利用rdd的sortBy函数进行排序,我们只能单一对某个元素,然而这并不能解决工作中的实际业务。2. 自定义排序步骤 ###定义一个类,继承Ordered 实现Serializable序列化(实体要在网络之间传递) 重写compare方法3. 示例 ###示例情景:根据美女的颜值与年龄进行排序,如...原创 2018-06-29 10:32:37 · 718 阅读 · 5 评论 -
Spark的broadcast
Spark的Broadcast1. 概述在实际场景中,当1个function传递到1个spark operation(例如:map、reduce)时,这个function是在远程的集群node上被执行的。这些变量会被复制到每一台机器,在远程机器上不会更新这些变量,然后又传送回driver program。跨tasks共享读写变量的支持,通常是低效率的。然而,spark提供了2种通用的共...原创 2018-06-30 09:32:23 · 5839 阅读 · 0 评论 -
Rdd详解
RDD 详解1. RDD概述RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显式地将工作集缓存在内存中,后续的查询能够重用工作集,这极大地提升了查询速度。2. R...原创 2018-06-20 14:53:47 · 1937 阅读 · 0 评论 -
Spark SQL
Spark SQL1. SparkSql概述Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。Hive是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduce的程序的复杂性,由于MapReduce这种计算模型执行效率比较慢。所以Spark SQL的应运而生,...原创 2018-07-01 10:22:38 · 210 阅读 · 0 评论 -
Kafka详解
kafka详解1.概述Kafka 是一个基于分布式的消息发布-订阅系统,它被设计成快速、可扩展的、持久的。Kafka 在主题当中保存消息的信息。生产者向主题写入数据,消费者从主题读取数据。2.关键字解析Broker Kafka 集群包含一个或多个服务器,其中的服务器被称为 broker。Topic 一个 topic 可以认为是一类消息,每个 topic 将被分成多个...原创 2018-07-23 16:04:32 · 590 阅读 · 0 评论 -
无法导入 import spark.implicits._ 报错
无法导入 import spark.implicits._ 报错##import spark.implicits._ 中的spark 指的是SQLContext或者SparkSessioneg1:def main(args: Array[String]): Unit = { val spark = SparkSession.builder() ...原创 2019-03-07 11:12:18 · 4546 阅读 · 1 评论