
spark
文章平均质量分 92
时间会抚平一切
这个作者很懒,什么都没留下…
展开
-
使用Redis保存SparkStreaming的状态数据/中间过程数据
SparkStreaming的状态管理,官方推出的有1.6版本之前的 updateStateByKey 和1.6版本之后的 mapWithState。但是都有一个共同的弊端,就是会生成大量的小文件,需要手动合并。故此,使用redis来存储state是一个很好的选择。WordCount案例object TestState { def main(args: Array[String]): Unit = { val sparkConf: SparkConf = new SparkConf().s原创 2020-05-14 15:49:51 · 1037 阅读 · 0 评论 -
图解Spark算子(map,mapPartitions,mapPartitionsWithIndex,flatMap,glom,groupBy,filter,sample,distinct...)
spark算子:map,mapPartitions,mapPartitionsWithIndex,flatMap,glom,groupBy,filter,sample,distinct,coalesce,repartition,sortBy,union,subtract,intersection,zip,partitionBy,groupByKey,reduceByKey,aggregateByKey,foldByKey,combineByKey,sortByKey,mapValues,join,cogro原创 2020-05-06 12:10:46 · 1394 阅读 · 1 评论 -
Spark任务划分、代码执行位置、创建Connect连接的最佳实践
Spark任务划分在RDD中,任务可切分为:Application、Job、Stage、Task。Application:初始化一个SparkContext即生成一个Application,通常一个main函数就是一个Application;Job:一个Action算子就会生成一个Job,常用Action算子包括reduce、aggregate、collect、first、take、fore...原创 2020-04-16 15:01:45 · 1015 阅读 · 0 评论 -
客官,您的【Spark读取千万数据量Mysql大表后写入到Hive】代码已上齐,请慢用。。。
本文主要用来描述如何用Spark读取Mysql超百万甚至千万数据量的大表。经过测试,spark读取1千万数据量的mysql表写到hive中,整个job运行只需1.6分钟。开始参考这篇文章的写法读取mysql【spark jdbc分区并发读取 mysql 大表】,但是只适合读取数字型的主键或者要写死分区,不管是从实际需求还是代码层面来说都显得不够优秀。于是就想到了用mysql分页读取的方法来改进。这种方法无需关注分区字段的类型,也无需写死分区,可以根据配置进行动态分区读取。原创 2020-04-05 20:58:35 · 6172 阅读 · 7 评论 -
IDEA用Maven打包Spark(去掉不需要的依赖) POM文件
1. 根据项目需要添加依赖;服务器上已经有大数据组件的依赖都无需打包依赖,所以可以在依赖加上<scope>provided</scope>2. 如果使用IDEA,在本地运行项目时要在运行配置勾选【Include dependencies with “Provided” scope】,否则会编译出错以下是POM.xml文件<?xml version="1.0" ...原创 2020-04-03 17:35:57 · 2486 阅读 · 0 评论 -
SparkSQL/SparkStreaming读写Hive/Mysql/Hbase/Kafka
Spark读写Hive/Mysql/Hbase/KafkaSpark读写Hive/Mysql/Hbase/Kafka一、工具类、配置类(一)SparkUtils (SparkSession启动类)(二)ConnectUtils (连接/配置参数工具类)二、Mysql to Hive三、Hbase to Hive四、Hive to Hive五、Kafka to Hive/Hbase/Kafka(一)...原创 2020-03-27 22:05:11 · 1961 阅读 · 3 评论