
Spark
文章平均质量分 77
xiaoxaoyu
小小鱼
展开
-
pyspark安装文档
pyspark环境安装一、python3环境安装参考文档:pyspark安装1、下载安装包生产环境下的python安装包,tgz格式,C语言,没有编译过的。Java可以跨平台,只能针对当前计算机https://www.python.org/ftp/python/3.6.4/也可以使用wget命令接上面的网址直接下载2、安装python可能用到的依赖:yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-de原创 2021-04-13 10:46:27 · 871 阅读 · 0 评论 -
sparkStreaming对kafka topic数据进行处理后再重新写入kafka(2)
在上文中,我们使用sparkStreaming对kafka中某topic数据进行数据处理后再重新写入kafka,其实整套逻辑思路并不复杂,但全都写在一个类里面,只能一次性使用,修改时要修改类主体的内容,扩展性很差,安全性也得不到保障。因此本文把该类主体内容拆解,抽出各个部分,便于管理和扩展文章目录1、思路分析:1.1、从逻辑上抽出第一层概念:1.2、通过核心动作抽出第二层概念1.3、把可以替换的属性方法抽出来,得到:2、代码实现:2.1、顶级接口功能设计2.1.1、读2.1.2、写2.1.3、数据处理2原创 2021-04-06 20:47:07 · 387 阅读 · 0 评论 -
sparkStreaming对kafka topic数据进行处理后再重新写入kafka
文章目录1、需求:2、知识点:3、方法1:4、方法2:4.1、伴生类创建KafkaProducer包装器4.2、SparkStreaming消费kafka并写入kafka1、需求:使用sparkStreaming对kafka中某topic数据进行数据处理后再重新写入kafka2、知识点:广播变量SparkStreaming连接kafka进行消费rdd算子写入kafka懒加载伴生类与伴生对象的使用producerRecord手动序列化3、方法1:KafkaProducer不可序原创 2021-04-02 00:07:53 · 1988 阅读 · 3 评论 -
Spark-Streaming基础使用
文章目录1、SparkStreaming案例1.1 代码如下:1.2 shell作为数据输入端1.3 执行测试1.4 踩坑点2、使用Spark Streaming处理HDFS上的文件2.1 代码如下2.2 上传文件2.3 踩坑点3、使用Spark Streaming处理有状态的数据3.1 流程分析3.2 代码如下3.3 测试3.4 踩坑点4、使用Spark Streaming整合Spark SQL4.1 流程分析4.2 代码如下5、使用Spark Streaming处理Flume输出的数据-push6、使用原创 2021-04-01 01:25:40 · 437 阅读 · 0 评论 -
spark中正则的使用
spark中正则的使用近期项目中,在写spark做数据清洗时,用了几次正则,因此总结下正则的几个方向的案例,主要方向为sparkSQL函数和自定义函数中的使用。不全,待补充:1、匹配://此方法含义为如果输入age符合正则规则(findAllMatchIn迭代器不为空),则返回本身val calAge = udf((age: String, defyear: String) => { val reg = "^(19[5-9][0-9]|20[0-1][0-9]|2020)$".r原创 2021-03-25 22:19:08 · 3612 阅读 · 0 评论 -
rdd读取文件去掉表头的几种方式
spark读取文件时,如果是excel的结构型数据,经常会遇到有表头的情况下面列出了三种方式去掉表头filter判断过滤 val rdd = sc.textFile("文件路径").map(x => x.replaceAll("\"", "")) .map(x => x.split(",")).filter(!_.contains("id")).cache()mapPartitions操作时迭代删除首行,效率最高 val rdd = s原创 2021-03-03 19:45:59 · 2871 阅读 · 1 评论 -
Spark 算子
文章目录1、转换算子1.1 map1.2 mapPartitions1.3 mapPartitionsWithIndex1.4 flatMap1.5 glom1.6 groupBy1.7 filter1.8 sample1.8.1 抽取数据不放回(伯努利算法)1.8.2 抽取数据放回(泊松算法)1.9 distinct1.10 coalesce1.11 repartition1.12 sortBy1.13 intersection1.14 union1.15 subtract1.16 zip1.17 pa原创 2021-01-23 23:32:59 · 449 阅读 · 0 评论 -
Spark GraphX-航班飞行网图分析
1、如下图所示的航班表,解决以下问题:统计航班飞行网图中机场的数量统计航班飞行网图中航线的数量计算最长的飞行航线(Point to Point)找出最繁忙的机场找出最重要的飞行航线(PageRank)找出最便宜的飞行航线(SSSP)2、思路如下:根据机场信息和航线信息,构建Graph直接使用Graph的numVertices、numEdges方法求出机场和航线的数量最长航线,即为点边点三元视图的信息,直接对边的属性进行排序取第一个即可最繁忙机场,即为图的入度和出度最高的节点in原创 2021-01-14 14:37:49 · 593 阅读 · 0 评论 -
Spark SQL项目流程分析总结
文章目录1、使用properties文件存储配置信息:my.properties2、全局变量定义:Constants3、加载配置文件:ConfigurationManager4、工具类4.1、spark配置工具类01:SparkUtils4.2、DataFrame的Schema工具类:SchemaUtils4.3、数据库连接的工具类:DBUtils5、数据清洗类5.1、数据清洗5.2、数据导入MySQL表中6、数据分析类1、使用properties文件存储配置信息:my.properties是否是本地原创 2021-01-14 09:02:56 · 246 阅读 · 0 评论 -
Spark Graph基础
1、图(Graph)的基本概念1.1图的概念:是由顶点集合(vertex)及顶点间的关系集合(边edge)组成的一种网状数据结构通常表示为二元组:Gragh=(V,E)可以对事物之间的关系建模很好地表达了数据之间的关联性1.2应用场景:在地图应用中寻找最短路径社交网络关系网页间超链接关系1.3弹性分布式属性图分布式图(graph-parallel)计算和分布式数据(data-parallel)计算类似,分布式数据计算采用了一种record-centric的集合视图原创 2021-01-15 22:19:16 · 836 阅读 · 0 评论 -
Spark Core测试
1、Spark的优点和缺点是什么?优点:速度快=>内存(基于内存的分布式计算)高兼容=>(多模式部署,HDFS,mysql、Hive操作)多模式=>(算子,SQL,流,图,机器学习)高容错=>(DAG Lineage调度快速恢复)?高灵活=>持久化(内存+磁盘)缺点多线程模式,不支持细粒度划分容易造成内存溢出2、Spark 中reduceBykey和groupByKey区别与用法?哪个效果更好一些?reduceByKey的返回值[K,V] gro原创 2021-01-09 22:16:45 · 191 阅读 · 0 评论 -
Spark集成Hive和mysql
一、Spark集成Hive1、将Hive的配置文件拷贝到Spark的配置文件目录下,软拷贝硬拷贝皆可以ln -s /opt/software/hadoop/hive110/conf/hive-site.xml /opt/software/hadoop/spark244//conf/hive-site.xml2、拷贝jar包cp /opt/software/hadoop/hive110/lib/mysql-connector-java-5.1.32.jar /opt/software/hadoop/原创 2021-01-09 22:21:01 · 231 阅读 · 0 评论 -
Spark概念05-SparkSQL基础
一、Spark SQL原理一、Spark SQL优化器三、RDD、DataSet、DataFrame的概念type DataFrame = DataSet[Row]DataFrame实际上就是DataSet的Row类型DataFrame提供了更多API操作,更常用四、DataSet操作1、创建DataSet①准备工作➢ 首先创建SparkSession,默认变量名都写spark➢ 然后通过session创建sparkContext,一般默认写sc➢ 需要导入一个隐式转换 val原创 2021-01-10 22:52:52 · 229 阅读 · 0 评论 -
Spark基础概念04-RDD优化
1、存储级别选择缓存是构建 Spark 迭代计算和交互式查询的关键每个 RDD 的 compute 执行时,将判断缓存的存储级别。如果指定过存储级别则读取缓存2、广播变量类似mapJoin把小表放到内存,广播变量是把小数据广播出去分发给(缓存到)各个节点允许开发者将一个只读变量(Driver 端)缓存到每个节点(Executor)上, 而不是每个任务传递一个副本。注意,不能对 RDD 进行广播。object BroadCast { def main(args: Array[Strin原创 2021-01-07 00:28:29 · 251 阅读 · 0 评论 -
Spark基础概念02-缓存机制、RDD血缘和依赖关系
目录一、RDD血缘关系二、RDD依赖关系三、测试缓存效果四、persist缓存五、缓存容错机制七、缓存和检查点区别一、RDD血缘关系RDD 只支持粗粒度转换,即在大量记录上执行的单个操作。将创建 RDD 的一系列Lineage (血统)记录下来,以便恢复丢失的分区。RDD 的Lineage 会记录RDD 的元数据信息和转换行为,当该RDD 的部分分区数据丢失时,它可以根据这些信息来重新运算和恢复丢失的 数据分区。object Lineage{ def main(args: Array[Stri原创 2021-01-06 16:49:00 · 413 阅读 · 0 评论 -
Spark基础概念01-初识Spark架构和RDD
Spark运行架构、核心组件、核心API一、对比MapReduce与Spark的主要区别易用性:Spark编程简洁方便效率:Map中间结果写入磁盘,效率低下,不适合迭代运算。Spark Job中间输出结果可以保存在内存,不再需要读写HDFS任务启动开销:MapReduce采用的是多进程模型,Spark采用了多线程模型二、Spark技术栈Spark Core:核心组件,分布式计算引擎Spark SQL:高性能的基于Hadoop的SQL解决方案Spark Streaming:可以实现高吞吐原创 2021-01-05 16:14:22 · 344 阅读 · 0 评论