- 博客(19)
- 资源 (5)
- 收藏
- 关注
原创 SparkStreaming之Dstream创建
Spark Streaming原生支持一些不同的数据源。一些“核心”数据源已经被打包到Spark Streaming 的 Maven 工件中,而其他的一些则可以通过 spark-streaming-kafka 等附加工件获取。每个接收器都以 Spark 执行器程序中一个长期运行的任务的形式运行,因此会占据分配给应用的 CPU 核心。此外,我们还需要有可用的 CPU 核心来处理数据。这意味着如果要运...
2020-08-31 07:57:46 399 1
原创 SparkStreaming之Dstream入门
WordCount案例实操需求:使用netcat工具向9999端口不断的发送数据,通过SparkStreaming读取端口数据并统计不同单词出现的次数添加依赖<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming_2.11<...
2020-08-28 08:01:03 418
原创 Spark Streaming详细概述
Spark Streaming是什么Spark Streaming用于流式数据的处理。Spark Streaming支持的数据输入源很多,例如:Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等等。数据输入后可以用Spark的高度抽象原语如:map、reduce、join、window等进行运算。而结果也能保存在很多地方,如HDFS,数据库等。和Spark基于RDD的...
2020-08-26 08:18:33 280
原创 SparkSQL实战案例
数据说明数据集是货品交易数据集每个订单可能包含多个货品,每个订单可以产生多次交易,不同的货品有不同的单价加载数据tbStock:scala> case class tbStock(ordernumber:String,locationid:String,dateid:String) extends Serializabledefined class tbStockscala&...
2020-08-24 08:15:40 2009 3
原创 SparkSQL数据源之Hive数据库
Apache Hive是Hadoop上的SQL引擎,Spark SQL编译时可以包含Hive支持,也可以不包含。包含Hive支持的Spark SQL可以支持Hive表访问、UDF(用户自定义函数)以及 Hive 查询语言(HiveQL/HQL)等。需要强调的一点是,如果要在Spark SQL中包含Hive的库,并不需要事先安装Hive。一般来说,最好还是在编译Spark SQL时引入Hive支持,...
2020-08-21 08:08:07 267
原创 SparkSQL数据源之通用加载/保存方法/JSON文件/Parquet文件/JDBC
手动指定选项Spark SQL的DataFrame接口支持多种数据源的操作。一个DataFrame可以进行RDDs方式的操作,也可以被注册为临时表。把DataFrame注册为临时表之后,就可以对该DataFrame执行SQL查询。Spark SQL的默认数据源为Parquet格式。数据源为Parquet文件时,Spark SQL可以方便的执行所有的操作。修改配置项spark.sql.sourc...
2020-08-20 08:11:22 529 1
原创 SparkSQL编程之用户自定义函数
IDEA创建SparkSQL程序IDEA中程序的打包和运行方式都和SparkCore类似,Maven依赖中需要添加新的依赖项<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11</artifactId> <v...
2020-08-19 08:01:32 385
原创 SparkSQL编程之RDD、DataFrame、DataSet
在SparkSQL中Spark为我们提供了两个新的抽象,分别是DataFrame和DataSet。他们和RDD有什么区别呢?首先从版本的产生上来看:RDD (Spark1.0) —> Dataframe(Spark1.3) —> Dataset(Spark1.6)如果同样的数据都给到这三个数据结构,他们分别计算之后,都会给出相同的结果。不同是的他们的执行效率和执行方式。在后期的...
2020-08-18 08:01:23 196
原创 SparkSQL编程之DataSet以及DataFrame与DataSet的互操作
DataSetDataset是具有强类型的数据集合,需要提供对应的类型信息。DataSet创建创建一个样例类scala> case class Person(name: String, age: Long)defined class Person创建DataSetscala> val caseClassDS = Seq(Person("Andy", 32)).t...
2020-08-17 08:14:10 212
原创 SparkSQL编程之DataFrame详解
SparkSession新的起始点在老的版本中,SparkSQL提供两种SQL查询起始点:一个叫SQLContext,用于Spark自己提供的SQL查询;一个叫HiveContext,用于连接Hive的查询。SparkSession是Spark最新的SQL查询起始点,实质上是SQLContext和HiveContext的组合,所以在SQLContext和HiveContext上可用的API在S...
2020-08-14 08:19:57 393
原创 SparkSql详细概述
什么是Spark SQLSpark SQL是Spark用来处理结构化数据的一个模块,它提供了2个编程抽象:DataFrame和DataSet,并且作为分布式SQL查询引擎的作用。我们已经学习了Hive,它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduc的程序的复杂性,由于MapReduce这种计算模型执行效率比较慢。所有Spark SQL的应运而...
2020-08-13 08:13:50 391
原创 SparkCore之RDD编程进阶之累加器
累加器累加器用来对信息进行聚合,通常在向 Spark传递函数时,比如使用 map() 函数或者用 filter() 传条件时,可以使用驱动器程序中定义的变量,但是集群中运行的每个任务都会得到这些变量的一份新的副本,更新这些副本的值也不会影响驱动器中的对应变量。如果我们想实现所有分片处理时更新共享变量的功能,那么累加器可以实现我们想要的效果系统累加器针对一个输入的日志文件,如果我们想计算文件中...
2020-08-12 08:07:28 338
原创 SparkCore之文件系统类数据读取与保存
HDFSSpark的整个生态系统与Hadoop是完全兼容的,所以对于Hadoop所支持的文件类型或者数据库类型,Spark也同样支持.另外,由于Hadoop的API有新旧两个版本,所以Spark为了能够兼容Hadoop所有的版本,也提供了两套创建操作接口.对于外部存储创建操作而言,hadoopRDD和newHadoopRDD是最为抽象的两个函数接口,主要包含以下四个参数.输入格式(Input...
2020-08-11 08:08:47 194
原创 SparkCore之文件类数据读取与保存
Spark的数据读取及数据保存可以从两个维度来作区分:文件格式以及文件系统。文件格式分为:Text文件、Json文件、Csv文件、Sequence文件以及Object文件;文件系统分为:本地文件系统、HDFS、HBASE以及数据库。Text文件数据读取:textFile(String)scala> val hdfsFile = sc.textFile("hdfs://hadoo...
2020-08-10 08:11:17 619
原创 SparkCore之键值对RDD数据分区器详解
Spark目前支持Hash分区和Range分区,用户也可以自定义分区,Hash分区为当前的默认分区,Spark中分区器直接决定了RDD中分区的个数、RDD中每条数据经过Shuffle过程属于哪个分区和Reduce的个数注意:只有Key-Value类型的RDD才有分区器的,非Key-Value类型的RDD分区器的值是None每个RDD的分区ID范围:0~numPartitions-1,决定这...
2020-08-07 08:18:19 167
原创 SparkCore之RDD缓存与RDD CheckPoint
RDD缓存RDD通过persist方法或cache方法可以将前面的计算结果缓存,默认情况下 persist() 会把数据以序列化的形式缓存在 JVM 的堆空间中。但是并不是这两个方法被调用时立即缓存,而是触发后面的action时,该RDD将会被缓存在计算节点的内存中,并供后面重用。通过查看源码发现cache最终也是调用了persist方法,默认的存储级别都是仅在内存存储一份,Spark的存...
2020-08-06 08:19:47 162
原创 SparkCore之RDD依赖关系
LineageRDD只支持粗粒度转换,即在大量记录上执行的单个操作。将创建RDD的一系列Lineage(血统)记录下来,以便恢复丢失的分区。RDD的Lineage会记录RDD的元数据信息和转换行为,当该RDD的部分分区数据丢失时,它可以根据这些信息来重新运算和恢复丢失的数据分区。读取一个HDFS文件并将其中内容映射成一个个元组scala> val wordAndOne = sc....
2020-08-05 08:31:07 146
原创 SparkCore之RDD中的函数传递详解
在实际开发中我们往往需要自己定义一些对于RDD的操作,那么此时需要主要的是,初始化工作是在Driver端进行的,而实际运行程序是在Executor端进行的,这就涉及到了跨进程通信,是需要序列化的。下面我们看几个例子:传递一个方法创建一个类class Search(s:String){//过滤出包含字符串的数据 def isMatch(s: String): Boolean = { ...
2020-08-04 08:28:59 192
原创 SparkCore之Action
reduce(func)案例作用:通过func函数聚集RDD中的所有元素,先聚合分区内数据,再聚合分区间数据。需求:创建一个RDD,将所有元素聚合得到结果。创建一个RDD[Int]scala> val rdd1 = sc.makeRDD(1 to 10,2)rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD...
2020-08-03 09:05:38 133
嵌入式技术之STM32单片机测试程序-stlink驱动-烧写器固件升级-工具-STM32开发板验证流程
2024-09-09
嵌入式技术之STM32单片机stm32 标准库-stm32-hal 离线芯片支持包-调试工具-arm5-compiler
2024-09-09
settings.xml
2020-04-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人