Spark
文章平均质量分 75
西南偏北_
专注大数据领域(Spark、Flink、Hadoop生态、Kafka、数据仓库、数据中台...)
展开
-
Spark——Spark读写Greenplum/Greenplum-Spark Connector高速写Greenplum
通过数据平台上的DataX把Hive表数据同步至Greenplum(因为DataX原生不支持Greenplum Writer,只能采用PostgreSQL驱动的方式),但是同步速度太慢了,原创 2024-01-27 15:10:55 · 1423 阅读 · 0 评论 -
Spark——Spark读Elasticsearch Index索引报错存在重复列名
val spark = SparkSession .builder() .appName("es index") .config("hive.metastore.uris", "thrift://master-1:9083") .config("es.nodes", "node-1,node-2,node-3,node-4,node-5") .config("es.port", "...原创 2021-08-28 16:08:12 · 659 阅读 · 0 评论 -
Spark——Spark读写Oracle
<dependency> <groupId>com.oracle.database.jdbc</groupId> <artifactId>ojdbc8</artifactId> <version>12.2.0.1</version></dependency> def readOracle(spark: SparkSession): Unit = { val prop = new原创 2021-04-29 19:16:02 · 1571 阅读 · 0 评论 -
Spark——Spark读写Phoenix
文章目录1. Spark加载Phoenix表2. Spark持久化数据到Phoenix保存RDD到Phoenix保存DataFrame到Phoenix Phoenix为NoSQL数据库HBase提供了标准SQL和JDBC API的强大功能,且具备完整的ACID事务处理能力。对于小数据量的查询,其性能可以达到毫秒级别;对于数千万行的数据,其性能也可以达到秒级。要使用phoenix-spark插件,需要在项目中添加如下依赖:<dependency> <groupId>原创 2020-07-20 23:14:12 · 769 阅读 · 0 评论 -
Spark——Parquet格式 vs ORC格式
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ORC#:~:text=The%20Optimized%20Row%20Columnar%20(ORC,%2C%20writing%2C%20and%20processing%20data.https://orc.apache.org/docs/原创 2021-03-21 20:02:07 · 1959 阅读 · 0 评论 -
Spark——Spark/Hive SQL计算获取连续登陆N天及以上的用户
100 2021-03-01 1 0 1100 2021-03-02 2 0 2100 2021-03-03 3 0 3100 2021-03-09 4 5 1100 2021-03-10 5 5 2100 2021-03-11 6 5 3100 2021-03-12 7 5 4100 2021-03-13 8 5 5100 2021-03-14 9 5 6原创 2021-03-19 19:46:40 · 1133 阅读 · 0 评论 -
Spark——Spark 3.0自适应查询执行(Adaptive Query Execution)
参考https://databricks.com/blog/2020/10/21/faster-sql-adaptive-query-execution-in-databricks.html原创 2021-03-14 14:32:58 · 1802 阅读 · 0 评论 -
Spark——Spark SQL逻辑计划(Logical Plan)、物理计划(Physical Plan)和Catalyst优化器(Catalyst Optimizer)
文章目录参考参考https://databricks.com/blog/2015/04/13/deep-dive-into-spark-sqls-catalyst-optimizer.htmlhttps://blog.knoldus.com/understanding-sparks-logical-and-physical-plan-in-laymans-term/https://data-flair.training/blogs/spark-sql-optimization/...原创 2021-03-13 22:24:18 · 3701 阅读 · 0 评论 -
Spark——Spark覆盖分区表中指定的分区
文章目录项目场景问题描述解决方案参考项目场景我们现在有这样一个表,需要按月来记录用户的状态,当前月的状态数据是每天都要更新的,历史月的状态数据导入到表之后就不再更新了。那么这个业务场景就转换成了“如何向一个已存在的分区表写入并覆盖当前月份的状态数据,而又保留历史月份数据”的问题。问题描述Spark中向分区表写数据的时候,如果写入模式为“overwrite”,那会将整个表覆盖掉;如果写入模式为“append”,那么我们当前一个月的数据每天都会追加到当前月的分区内,那就会造成数据重复。所以不能直接使用原创 2021-03-08 19:56:56 · 5437 阅读 · 0 评论 -
Spark——Spark写MySQL太慢、很慢、非常慢的原因分析及优化方法
文章目录参考JdbcRelationProviderJdbcUtils.saveTable() ——> savePartition() ——> stmt.executeBatch() ——> Statement ——> StatementImpl参考http://wesmelton.com/tweet/twitter-if-youre-sending-any-volume-to-mysql-from-spark-at-all-add-rewritebatchedstateme原创 2021-01-14 23:34:16 · 3554 阅读 · 3 评论 -
Spark——大数据生态组件(Spark、Flink、YARN等)WEB UI地址汇总
文章目录Spark Web UIFlink Web UIKafka MangerYARN应用Web UIElasticsearch-headCloudera MangerHue Web UIZeppelin NotebookSpark Web UIhttp://master-1:18089/Flink Web UIhttp://master-1:8081/Kafka Mangerhttp://master-1:9001/YARN应用Web UIhttp://master-1:8088/原创 2020-12-31 20:08:46 · 514 阅读 · 0 评论 -
Spark——Spark缓存临时视图(View)
文章目录RDD/Dataset缓存复用纯SQL结果缓存复用RDD/Dataset缓存复用我们知道在使用RDD和Dataset API开发Spark应用程序的时候,如果要缓存某个RDD或Dataset来进行复用,减少重复计算提升计算效率的时候,我们可以在RDD或Dataset上调用persist()方法并传入缓存级别参数进行缓存。val df: Dataset[Row] = ...df.persist(StorageLevel.MEMORY_AND_DISK)纯SQL结果缓存复用但是当我们以纯S原创 2020-12-31 19:10:02 · 2937 阅读 · 0 评论 -
Spark——Spark Project Tungsten深入解析
文章目录https://databricks.com/blog/2015/04/28/project-tungsten-bringing-spark-closer-to-bare-metal.htmlhttp://www.slideshare.net/SparkSummit/deep-dive-into-project-tungsten-josh-rosenhttps://medium.com/@goyalsaurabh66/project-tungsten-and-catalyst-sql-opti原创 2020-12-27 21:29:52 · 858 阅读 · 0 评论 -
Spark——Spark RDD、Dataset、DataFrame及区别
文章目录RDD1. 不可变性2. 分区性3. 并行操作4. RDD内部结构5. RDD宽依赖、窄依赖1. 窄依赖2. 宽依赖6. RDD的重用DatasetDataFrame参考RDDRDD(Resilient Distributed Dataset,弹性分布式数据集)是Spark中的基本抽象。RDD代表一种可并行操作的不可变的分区元素集合,它有3个特性:RDD是不可变的RDD是分区的RDD是可以并行操作的1. 不可变性RDD是不可变的,只能在其他的RDD上通过Transformation原创 2020-12-27 14:19:40 · 571 阅读 · 0 评论 -
Spark——spark-submit提交应用程序的注意事项
文章目录配置加载优先级指定多个依赖jar包配置加载优先级我们知道Spark应用程序在提交的时候会加载多个地方的配置信息:通过配置文件conf/spark-defaults.conf...# Default system properties included when running spark-submit.# This is useful for setting default environmental settings.# Example:# spark.master原创 2020-12-12 18:01:16 · 209 阅读 · 0 评论 -
Spark——DataFrame/Hive表导出为Excel、CSV之逆向思维
文章目录Hive表数据/Spark DataFrame导出为ExcelHive表数据/Spark DataFrame导出为CSVHive表数据/Spark DataFrame导出为Excelprivate void checkLength(String value) { if(value.length() > getSpreadsheetVersion().getMaxTextLength()){ final String message = String.format(L原创 2020-12-10 22:36:40 · 1260 阅读 · 0 评论 -
Spark——Spark OOM Error问题汇总分析
文章目录Driver端OOM Error1. 在大数据集上调用了不适合的API2. 广播了大变量Executor端OOM Error1. 低效的查询2. 不合适的配置3. 并行任务较多参考Spark之所以能进行高性能的查询计算,主要得益于其基于内存的计算模型,那么在讨论Spark 中的一系列OOM error之前,我们应该对Spark的内存模型有一个充分的了解(请参考:Spark内存模型),才能分析定位OOM出现的原因。了解了Spark的内存模型之后,我们回到Spark OOM error上。当Spa原创 2020-11-22 13:18:49 · 2012 阅读 · 0 评论 -
Spark——Spark/Hive向量化查询执行原理分析(Vectorization Query Execution)
https://towardsdatascience.com/apache-hive-optimization-techniques-2-e60b6200eeca原创 2020-11-21 18:50:17 · 4720 阅读 · 0 评论 -
Spark——Spark读写MongoDB
一、Spark加载MongoDB collection有两种连接MongoDB的方式:1、直接连接MongoDB;2、创建Hive表映射MongoDB中的collection。原创 2020-11-09 20:04:38 · 2019 阅读 · 0 评论 -
Spark——Spark读写Elasticsearch
RDDval spark = SparkSession .builder() .config("hive.metastore.uris", "thrift://master-1:9083") //es配置 .config("es.nodes", "node-1,node-2,node-3,node-4,node-5") .config("es.port", "9200") .con...原创 2020-07-20 23:16:58 · 1406 阅读 · 3 评论 -
Spark——快速搞定Spark集群安装
文章目录1. 官网下载Spark安装包2. 解压安装包3. Spark配置1. 配置spark-env.sh2. 配置spark-defaults.conf3. 配置log4j.properties4. scp安装文件5. 测试注:以下步骤中,从第1步到第8步,除了元数据库的安装之外,其他步骤都是要在集群所有节点上执行的!1. 官网下载Spark安装包下载要安装版本的安装包:https://archive.apache.org/dist/spark/。我这里下载的是:https://archive.原创 2020-07-16 21:53:03 · 353 阅读 · 0 评论 -
Spark——Spark DataFrame导出为Excel文件
<dependency> <groupId>com.crealytics</groupId> <artifactId>spark-excel_2.11</artifactId> <version>0.12.5</version></dependency> resultDF.select(sortedColumns.head, sortedColumns.tail: _*) .w原创 2020-07-14 22:05:56 · 7616 阅读 · 0 评论 -
Spark —— JSON对象/数组转成Spark Dataset/DataFrame
JSON转DataFrame 在日常使用Spark处理数据时, 半结构化的JSON数据(JSONObject, JSONArray)可能是最常见的一种数据结构,那么能熟练并快速地处理JSON格式数据应该是数据开发人员的必备技能。接下来我们就看看该如何将各种格式的JSON数据转成DataFrame。 1. 读取JSON文件读取指定路径下的json文件(或者存放json...原创 2020-04-17 17:12:59 · 3391 阅读 · 0 评论 -
Spark——Spark Dataframe转成HashMap
既然是要将Dataframe转化成HashMap, 那么为什么要把Dataframe转化成HashMap? 使用场景是什么?需求现在有一个json串"{‘address’:[[‘33’,‘3301’,‘330108’],‘xx路xx号’]}", 需要把address解析出来之后, 将行政区划编码替换为对应的省市区县, 最后输出这样的格式(“浙江省杭州市滨江区xx路xx号”).开发给到的行政区...原创 2020-01-04 15:04:16 · 4550 阅读 · 0 评论 -
Spark——Spark读写HBase
HBase作为一种可以进行海量数据存储、高性能读写的NoSQL数据库,在大数据中有着广泛的引用。而Spark作为大数据中常用的计算引擎,需要访问存储HBase中的海量数据进行分析处理。那么Spark如何整合HBase来加载HBase中的表以及将外部数据持久化到HBase?1. 加载HBase中的表...原创 2019-10-30 18:27:02 · 1075 阅读 · 0 评论 -
Spark——一行代码转化Dataset/DataFrame部分列或所有列的数据类型
应用场景当需要把DataFrame中所有列的类型转换成另外一种类型,并且这个DataFrame中字段很多,一个一个地转换要写很多冗余代码的时候,就可以使用如下这两种转换方式。 方法一代码如下import org.apache.spark.sql.DataFrameimport org.apache.spark.sql.functions.colval df...原创 2019-09-19 11:31:19 · 6553 阅读 · 0 评论 -
Spark——Spark读写MySQL及问题汇总
Spark API提供了两种并行读MySQL的方式。 1. 基于整型列设置并行度先上代码,对着代码再做详细的解释:def readByIntegralColumn(spark: SparkSession): Unit = { val options = Map( "url" -> "jdbc:mysql://host:3306/dbName", //...原创 2019-07-17 21:35:04 · 1103 阅读 · 0 评论 -
Spark——pyspark使用中遇到的坑 (持续更新)
1. 模块依赖问题因为平时写Spark应用程序基本都用Scala,之前有写过一段pyspark,但是都是在一个类或模块中实现所有的功能,也就自然没有遇到过要在一个模块中导入(import)自己写的另一个模块。这次遇到了,也发现了关于import模块时要注意的问题。 本地 PyCharm要注意的是,当在一个模块(假如是module1)中导入相同目录(假设是demo)下的另一个模块(...原创 2019-07-18 21:33:42 · 1674 阅读 · 4 评论 -
Spark——第一个Spark应用程序之WordCount单词统计(Scala/Python/Java)
入门Spark的第一个小例子就是编写一个简单的WordCount程序,来统计一个文件中每个单词的个数。接下来分别是用Scala、Python和Java三种语言来实现WordCount的代码,都是基于Spark2.0+版本和本地local模式。 编写Spark应用程序选择哪种语言?首先,推荐使用Scala,因为Spark的底层源码主要是基于Scala编写的,对Scala...原创 2019-07-11 21:14:18 · 1097 阅读 · 0 评论 -
Spark——IntelliJ IDEA中Spark应用程序连接远程Hadoop集群读写Hive表数据(Scala/Python)
很多时候,我们在编写好Spark应用程序之后,想要读取Hive表测试一下,但又不想操作 (打jar包——>上传集群——>spark-submit) 这些步骤时,我们就可以在本地直连Hive,直接run你的Spark应用程序中的main函数即可。代码如下(版本为Spark2.0+): Scala版本import org.apache.spark.sql.SparkSess...原创 2019-07-03 21:06:47 · 5921 阅读 · 0 评论 -
Spark——Spark性能优化指南(官网文档)
由于大多数Spark计算基于内存的特性,Spark程序可能会因为集群中的任何资源而导致出现瓶颈:CPU、网络带宽或内存。通常情况下,如果数据适合于放到内存中,那么瓶颈就是网络带宽,但有时,你还是需要一些调优的,比如以序列化的形式保存RDDs,以便减少内存占用。这篇调优指南主要涵盖两个主题:数据序列化和内存调优。数据序列化对于良好的网络性能是至关重要的,而且还可以减少内存的使用。Data Se...翻译 2020-04-15 22:23:32 · 178 阅读 · 0 评论