Spark
雷禄辉
交流治愈愚拙,分享使人进步。
展开
-
pyspark消费Kafka写入Hive数据库
pyspark消费Kafka写入Hive数据库原创 2023-02-27 20:16:49 · 487 阅读 · 1 评论 -
Spark SQL调用regexp_extract的处理方式
Spark SQL调用regexp_extract的处理方式原创 2022-09-13 11:36:49 · 3051 阅读 · 0 评论 -
pyspark报java.util.NoSuchElementException: key not found: _PYSPARK_DRIVER_CALLBACK_HOST的解决办法
今天我在本地使用Pycharm编写spark程序的时候,去连接hive数据库读取数据,然后报java.util.NoSuchElementException: key not found: _PYSPARK_DRIVER_CALLBACK_HOST问题最后发现是pip安装的pyspark版本和集群的版本不一致,我本地安装的pyspark=2.4.4,而我的集群是spark=2.3.0解决办法:先卸载之前的pyspark版本,然后安装对应的pyspark版本pip3 uninstall pys原创 2022-03-31 19:39:43 · 4799 阅读 · 0 评论 -
Spark中解决jdbc.DefaultSource没发现问题
今天在写一个小功能项目,主要要做的是读取ES数据,处理后存入MySQL,在IDEA中一直运行正常,打成jar包通过java命令运行出错,出错信息如下:具体实现代码:ElasticSearch 数据导入到 MySQLException in thread "main" java.lang.ClassNotFoundException: Failed to find data source: jdbc. Please find packages at http://spark.apache.org/th原创 2020-07-24 15:41:20 · 2171 阅读 · 2 评论 -
Spark学习实例(Python):RDD执行 Actions
上面我们学习了RDD如何转换,即一个RDD转换成另外一个RDD,但是转换完成之后并没有立刻执行,仅仅是记住了数据集的逻辑操作,只有当执行了Action动作之后才会真正触发Spark作业,进行算子的计算执行操作有:reduce(func) collect() count() first() take(n) takeSample(withReplacement, num, [seed...原创 2019-08-20 16:40:10 · 2730 阅读 · 1 评论 -
Spark学习实例(Python):RDD、DataFrame、DataSet相互转换
在学习转换之前先了解以下它们的基本概念RDD:弹性分布式数据集,是一个只读分区集合 DataFrame:以命名列方式组织的分布式数据集,概念上和关系型数据库的一张表一样 DataSet:分布式数据集合,Python暂时不支持了解了基本的概念之后,接下来我们通过代码编写三种数据集的形成RDD的形成from pyspark.sql import SparkSessionif _...原创 2019-08-20 16:44:22 · 5956 阅读 · 1 评论 -
Spark学习实例(Python):共享变量Shared Variables
通常在使用Spark算子函数,比如使用map()或者reduce函数我们向函数传入条件时,函数内部可以使用驱动程序中定义的变量,但是这样会使集群中所有任务都会得到变量新的副本,这些副本的更新不会传播回驱动程序,导致读写共享变量效率低下或者内存溢出,为了解决这个问题Spark提供了两种共享变量类型:广播变量和累加器广播变量:用来高效分发较大对象,只能在Driver定义,不能在Executor端定...原创 2019-08-20 16:40:58 · 1134 阅读 · 0 评论 -
Spark学习实例(Python):输入源实时处理 Input Sources Streaming
在之前学习的RDD和DataFrame数据集主要处理的是离线数据,随着时代发展进步,我们会发现越来越多数据是在源源不断发回到数据中心,同时需要立刻响应给用户,这样的情况我们就会用到实时处理,常用的场景有实时显示某商场一小时人流密度、实时显示当天火车站人口总数等等。接下来从实时数据源说起,实时数据源主要有:File Source Socket Source Flume Source Kaf...原创 2019-08-20 16:41:54 · 750 阅读 · 0 评论 -
Spark学习实例(Python):窗口操作 Window Operations
说到流处理,Spark为我们提供了窗口函数,允许在滑动数据窗口上应用转换,常用场景如每五分钟商场人流密度、每分钟流量等等,接下来我们通过画图来了解Spark Streaming的窗口函数如何工作的,处理过程图如下所示:上图中绿色的小框框是一批一批的数据流,虚线框和实线框分别是前一个窗口和后一个窗口,从图中可以看出后一个窗口在前一个窗口基础上移动了两个批次的数据流,而我们真正通过算子操作的数...原创 2019-08-20 16:36:40 · 1211 阅读 · 0 评论 -
Spark学习实例(Python):RDD转换 Transformations
RDD是弹性分布式数据集,一种特殊集合,可以被缓存支持并行操作,一个RDD代表一个分区里的数据集转换操作有:map(func) filter(func) flatMap(func) mapPartitions(func) sample(withReplacement, fraction, seed) union(otherDataset) intersection(otherD...原创 2019-08-20 16:39:21 · 926 阅读 · 0 评论 -
Spark学习实例(Python):保存数据Save Data
我们用Spark处理完数据之后就需要将数据进行落地,比如保存为文本或者插入数据库,这样可以方便之后流程如页面可视化的处理。保存的数据类型有:text csv json jdbc hive hbase kafka elasticsearchtextcsvjsonparquet将这四种保存方式放到一起,是因为保存方式基本相同,为了便于说明保存数据的使用,数据来源采用自己制...原创 2019-08-20 16:38:13 · 4882 阅读 · 0 评论 -
修改Spark源码实现MySQL update
当我们在使用Spark写数据到MySQL时,通常会使用df.write.mode("xxx")...,但是当你点进mode查看源码会发现,可选项为:overwrite:翻盖存在的数据(会删除表或清空表)append:追加数据ignore:忽略操作,就是啥也不干error:抛出AnalysisException异常现在有个需求是数据写入表时当主键Key的数据存在时更新字段,否...原创 2019-06-28 19:55:09 · 2298 阅读 · 2 评论 -
Spark学习实例(Python):加载数据源Load Data Source
我们在使用Spark的时候主要是用来快速处理大批量的数据,那么实际开发和生产中会有哪些数据来源呢,我归类总结有:text csv json parquet jdbc hive kafka elasticsearch接下来所有的测试是基于spark local模式,因为local模式便于测试不依赖spark集群环境。有一点要注意将代码运行在spark集群上时要将.master("...原创 2019-08-09 14:30:32 · 1899 阅读 · 0 评论 -
Elasticsearch中如何使用Spark
Elasticsearch是一个实时的分布式搜索分析引擎,它被用作快速全文搜索、结构化搜索、分析以及这三个功能的结合。具体如何使用本文不做讲解,大家可以去Elasticsearch: 权威指南观看文档进行学习。 本文主要是使用Spark读写Elasticsearch,基于以下版本开发测试。 scala-version:2.11.8 spark-v...原创 2018-07-15 17:45:25 · 1342 阅读 · 1 评论 -
Ansible自动化部署Spark集群
关于ansible请参考ansible中文权威指南 在线安装ansibleyum -y install ansible 安装环境:JAVASCALASPARK目录结构[root@s124 spark]# pwd/opt/ansible/spark[root@s124 spark]# lsfiles tasks templates vars[ro...原创 2018-11-29 16:47:54 · 735 阅读 · 0 评论 -
Spark参数说明及调优
conf/spark-env.sh参数说明:SPAKR_WORKER_MEMORY : 指单个Worker节点在本机上可以使用的内存上限, 如512m, 2g等. 默认大小为本机所有内存减去1GB SPARK_EXECUTOR_MEMORY : 指单个进程(应用程序)在每个机器上可以使用的内存 , 默认是1g SPARK_WORKER_CORES : 指单个Worker节点在本机上可以使用...原创 2019-04-29 09:34:35 · 1006 阅读 · 0 评论 -
ElasticSearch中如何使用Spark
ElasticSearch是一个基于Lucene的搜索服务器, 它提供了一个分布式多用户能力的全文搜索引擎, 基于RESTful web接口, 底层是用Java开发的。本文将通过Spark的方式来读取ES,基于以下版本开发测试。 scala-version:2.11.8 spark-version:2.2.0 elasticsearch-version...原创 2019-04-30 16:13:04 · 1700 阅读 · 0 评论 -
ElasticSearch 数据导入到 MySQL
最近在做一个数据分析的项目,数据来源是来自ES,但不允许每次去ES中拉取数据,所以需要从ES中拉取数据然后进行数据落地操作,本文选取落地到mysql数据库中,这样方便进行一些sql语句操作。废话不多说,接下来正式开始, 由于要求快速,所以本文选择了Spark进行数据导出1. ElasticSearch与Spark已经有集成的jar包,且我的测试环境基于以下版本进行, 添加Maven依赖...原创 2019-05-06 14:43:52 · 8525 阅读 · 0 评论 -
Flink与SparkStreaming的wordcount
Flink是Apache开源的流处理框架,Spark是Apache开源的大规模数据处理快速通用的计算引擎,两者都是分布式框架,支持Java、Scala等多种语言。接下来通过实例来说明两者的应用。基于Flink的WordCount1. 对pom.xml文件添加依赖<dependency> <groupId>org.apache.flink<...原创 2019-06-13 11:18:15 · 237 阅读 · 0 评论 -
pyspark读取tidb数据库
TiDB是一种开源分布式数据库,使用上和mysql基本一致,详细使用说明请参考TiDB官网,中文文档参考TiDB中文说明,TiDB已经集成了Spark框架,可以直接使用Spark直接连接TiDB通过写SQL操作数据来提高任务的执行效率。接下来正式开始...本文档使用环境如下:python-version : 3.7tidb-version : 2.1.8pyspark-versio...原创 2019-06-25 14:20:45 · 2506 阅读 · 0 评论 -
Flink消费Kafka
Flink是由Apache开源的分布式流处理框架,常用来处理实时性的任务,与Spark Streaming和Strom功能上类似,具体选择需要根据业务场景来进行选择。本文将通过Flink的方式来消费Kafka数据,基于以下版本开发测试。 scala-version:2.11.8 flink-version:1.8.0 kafka-version:1.1...原创 2019-06-18 14:22:45 · 739 阅读 · 0 评论 -
Spark学习实例(Python):单词统计 Word Count
我们从学习一门新语言如C、Java、Python等基本都是从"Hello World"开始的,而这里的WordCount类似于"Hello World",该实例的功能是统计各个单词出现的次数,比如随意给你一份政府报告找出政府工作重点内容,那么就可以通过单词统计来完成,排除掉那些语气词(啊、的、是等等)出现词的频率越高代表着政府越重视。本文是基于Pyhon的Spark Local来进行,因此需要...原创 2019-07-16 19:41:37 · 4971 阅读 · 0 评论 -
Phoenix 中如何使用Spark
Phoenix是使用Java编写的一个开源项目,基于在HBase之上的一个SQL层,能让我们通过标准的JDBC API读写HBase,而不用Scan或者get的方式,其实底层是将SQL编译成原生的HBase scans进行查询。 本文将通过Spark的方式来读写Phoenix,基于以下版本开发测试。 scala-version:2.11.8 sp...原创 2018-07-19 14:00:13 · 2564 阅读 · 0 评论