Spark
XiaodunLP
祝福自己.^_^
展开
-
PySpark---SparkSQL中的DataFrame(二)
1.colRegex(colName):"""Selects column based on the column name specified as a regex and returns itas :class:`Column`."""用正则表达式的方式返回我们想要的列。df.show()# 这里注意`的使用df.select(df.colRegex("`(grad...原创 2019-08-01 17:29:29 · 999 阅读 · 0 评论 -
Spark性能调优----解决数据倾斜(对以前的记录的补充总结吧)
数据倾斜七种解决方案 shuffle的过程最容易引起数据倾斜1.使用Hi...原创 2019-03-26 00:35:14 · 343 阅读 · 0 评论 -
Spark性能调优----代码方面的优化
Spark性能调优之代码方面的优化1.避免创建重复的RDD 对性能没有问题,但会造成代码混乱 2.尽可能复用同一个RDD,减少产生RDD的个数 3.对多次使用的RDD进行持久化(cache,persist,checkpoint)如何选择一种最合适的持久化策略? 默认MEMORY_O...原创 2019-03-26 00:29:09 · 403 阅读 · 0 评论 -
Spark性能调优----合理设置并行度
Spark性能调优之合理设置并行度1.Spark的并行度指的是什么? spark作业中,各个stage的task的数量,也就代表了spark作业在各个阶段stage的并行度! 当分配完所能分配的最大资源了,然后对应资源去调节程序的并行度,如果并行度没有与资源相匹配,那么导致你分配下去的资源都浪费掉了。同时并行运行,还可以让每个task要处理的数量变少(很简单的原理。合理设置...原创 2019-03-26 00:27:10 · 1824 阅读 · 0 评论 -
Spark性能调优----JVM调优
Spark性能调优之JVM调优通过一张图让你明白以下四个问题 1.JVM GC机制,堆内存的组成 2.Spark的调优为什么会和JVM的调优会有关联?--因为...原创 2019-03-26 00:17:16 · 477 阅读 · 0 评论 -
Spark数据本地化----如何达到性能调优的目的
Spark数据本地化-->如何达到性能调优的目的1.Spark数据的本地化:移动计算,而不是移动数据2.Spark中的数据本地化级别:TaskSetManager 的 Locality Levels 分为以下五个级别:PROCESS_LOCAL NODE_LOCALNO_PREF RACK_LOC...原创 2019-03-26 00:13:17 · 315 阅读 · 0 评论 -
Spark性能调优之资源分配
性能优化王道就是给更多资源!机器更多了,CPU更多了,内存更多了,性能和速度上的提升,是显而易见的。基本上,在一定范围之内,增加资源与性能的提升,是成正比的;写完了一个复杂的spark作业之后,进行性能调优的时候,首先第一步,我觉得,就是要来调节最优的资源配置;在这个基础之上,如果说你的spark作业,能够分配的资源达到了你的能力范围的顶端之后,无法再分配更多的资源了,公司资源有限;那么才是考...原创 2019-03-25 20:56:53 · 600 阅读 · 0 评论 -
Spark----Spark加载中文乱码
在有些时候,spark加载HDFS或者本地文件中的中文时候会出现乱码的现象,因此需要在加载的时候进行一些字符的编码设置,将加载的文件的编码格式设置为UTF-8以下是现有的解决方案和案例(直接读取hadoop file) val rdd = sc.hadoopFile(file_path, classOf[TextInputFormat], classOf[LongWritabl...原创 2019-02-20 15:56:26 · 1901 阅读 · 0 评论 -
Spark----SparkSQL用户自定义函数
UDF通过spark.udf功能用户可以自定义函数。用户自定义UDF函数scala> val df = spark.read.json("examples/src/main/resources/people.json")df: org.apache.spark.sql.DataFrame = [age: bigint, name: string]scala> df....原创 2019-02-18 01:09:32 · 995 阅读 · 0 评论 -
Spark----SparkSQL简单操作
SparkSession前面我们已经介绍了SparkSession,这里我们在系统回顾一下,并做一些补充在老的版本中,SparkSQL提供两种SQL查询起始点,一个叫SQLContext,用于Spark自己提供的SQL查询,一个叫HiveContext,用于连接Hive的查询,SparkSession是Spark最新的SQL查询起始点,实质上是SQLContext和HiveContext的...原创 2019-02-18 01:03:38 · 360 阅读 · 0 评论 -
Spark性能调优----Shuffle调优
Spark性能调优之Shuffle调优 • Spark底层shuffle的传输方式是使用netty传输,netty在进行网络传输的过程会申请堆外内存(netty是零拷贝),所以使用了堆外内存。 • shuffle过程中常出现的问题常见问题一:reduce oom? 问题...原创 2019-03-26 00:38:04 · 321 阅读 · 0 评论 -
Spark之坑坑坑----troubleshooting
Spark之troubleshooting1.yarn-client模式引起网卡流量激增问题? 一个Driver和Executor中的task频繁进行通信,通信消息特别多,通信的频率特别高,运行完一个stage,接着运行下一个stage,又是频繁的通信。 解决:yarn-cluster ...原创 2019-03-26 00:45:02 · 402 阅读 · 0 评论 -
PySpark---SparkSQL中的DataFrame(一)
DataFrame是按照列名来组织数据的分布式数据集,是SparkSQL最重要的抽象。由于基于DataFrame的算法在性能和优化的余地上(Tungstun和Catalyst)有更大的空间,因此,现在Spark里基于DataFrame的机器学习库ml及Structured Streaming都采用这种数据结构。而且未来spark基于RDD的机器学习库mllib不会再更新,最新的算法都采用基于Dat...原创 2019-08-01 13:01:57 · 1464 阅读 · 0 评论 -
PySpark---SparkSQL中的DataFrame(四)
1.replace(to_replace, value=_NoValue, subset=None)"""Returns a new :class:`DataFrame` replacing a value with another value.:func:`DataFrame.replace` and :func:`DataFrameNaFunctions.replace` areal...原创 2019-08-04 00:32:55 · 2638 阅读 · 0 评论 -
PySpark---SparkSQL中的DataFrame(三)
1.filter(condition)"""Filters rows using the given condition.:func:`where` is an alias for :func:`filter`.:param condition: a :class:`Column` of :class:`types.BooleanType` or a string of SQL ...原创 2019-08-03 12:41:08 · 870 阅读 · 0 评论 -
PySpark----Action操作
目录1.aggregate(zeroValue, seqOp, combOp)2..aggregateByKey(zeroValue, seqFunc, combFunc, numPartitions=None, partitionFunc= )3.collect方法4.collectAsMap()5.count()方法6.countApprox(timeout, conf...原创 2019-07-07 12:36:03 · 1383 阅读 · 0 评论 -
PySpark ---- Sparkcontext编程入口
SparkContext是PySpark的编程入口,作业的提交,任务的分发,应用的注册都会在SparkContext中进行。一个SparkContext实例代表着和Spark的一个连接,只有建立了连接才可以把作业提交到集群中去。实例化了SparkContext之后才能创建RDD和Broadcast广播变量。 1.创建方式 1.1 通过SparkSession获取SparkContext对...原创 2019-07-14 10:15:48 · 6344 阅读 · 0 评论 -
Spark与Pandas中DataFrame对比(详细)
PandasSpark工作方式单机single machine tool,没有并行机制parallelism不支持Hadoop,处理大量数据有瓶颈分布式并行计算框架,内建并行机制parallelism,所有的数据和操作自动并行分布在各个集群结点上。以处理in-memory数据的方式处理distributed数据。支持Hadoop,能处理大量数据延迟机制not laz...转载 2019-06-27 18:55:50 · 1058 阅读 · 0 评论 -
PySpark----Transformation操作
1.cache()使用默认的缓存级别MEMORY_ONLY将数据进行持久化持久化级别由如下的取值:可以调用rdd上的getStorageLevel获取当前rdd对应的持久化级别from pyspark import *import numpy as nprdd = sc.parallelize(np.arange(10),3)rdd.getStorageLevel()r...原创 2019-07-07 22:09:15 · 1360 阅读 · 0 评论 -
Spark2.1 内存管理详解
本文中阐述的原理基于 Spark 2.1 版本,阅读本文需要读者有一定的 Spark 和 Java 基础,了解 RDD、Shuffle、JVM 等相关概念。在执行 Spark 的应用程序时,Spark 集群会启动 Driver 和 Executor 两种 JVM 进程,前者为主控进程,负责创建 Spark 上下文,提交 Spark 作业(Job),并将作业转化为计算任务(Task),在各个 Ex...原创 2019-04-05 20:12:07 · 1305 阅读 · 1 评论 -
Spark----SparkSQL之SparkSession
SparkSession 是 Spark-2.0 引如的新概念。SparkSession 为用户提供了统一的切入点,来让用 户学习 Spark 的各项功能。 在 Spark 的早期版本中,SparkContext 是 Spark 的主要切入点,由于 RDD 是主要的 API,我 们通过 sparkContext来创建和操作 RDD。对于每个其他的 API,我们需要使用不同的 context。...原创 2019-02-18 00:44:09 · 529 阅读 · 0 评论 -
Spark----RDD 、 DataFrames 和 DataSet的爱恨情仇
在SparkSQL中Spark为我们提供了两个新的抽象,分别是DataFrame和DataSet。他们和RDD有什么区别呢?首先从版本的产生上来看:RDD (Spark1.0) —> Dataframe(Spark1.3) —> Dataset(Spark1.6)如果同样的数据都给到这三个数据结构,他们分别计算之后,都会给出相同的结果。不同是的他们的执行效率和执行方式。...原创 2019-02-18 00:37:27 · 208 阅读 · 0 评论 -
Spark----Spark SQL概述
Spark SQL概述什么是Spark SQLSpark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。我们已经学习了Hive,它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduce的程序的复杂性,由于MapReduce这种计算模型执行效率比较慢。所有Spa...原创 2019-02-18 00:21:19 · 399 阅读 · 0 评论 -
Spark --- Spark 基础知识
Spark 基础知识1、Spark 的产生背景1.1、MapReduce 的发展1.1.1、MRv1 的缺陷早在 Hadoop1.x 版本,当时采用的是 MRv1 版本的 MapReduce 编程模型。MRv1 版本的实现 都封装在 org.apache.hadoop.mapred 包中,MRv1 的 Map 和 Reduce 是通过接口实现的。MRv1 包括三个部分:运行时环...原创 2019-02-09 20:18:35 · 244 阅读 · 0 评论 -
Spark----Spark 在不同集群中的架构
Spark 注重建立良好的生态系统,它不仅支持多种外部文件存储系统,提供了多种多样的集 群运行模式。部署在单台机器上时,既可以用本地(Local)模式运行,也可以使用伪分布式模式来运行;当以分布式集群部署的时候,可以根据自己集群的实际情况选择 Standalone 模式(Spark 自带的模式)、YARN-Client 模式或者 YARN-Cluster 模式。Spark 的各种运行模式 虽然在启...原创 2019-02-15 23:37:26 · 282 阅读 · 0 评论 -
Spark----Spark 任务执行流程分析
Spark 任务执行流程分析 Spark 任务的任务执行流程文字详细描述(1)、将我们编写的程序打成 jar 包 (2)、调用 spark-submit 脚本提交任务到集群上运行 (3)、运行 sparkSubmit 的 main 方法,在这个方法中通过反射的方式创建我们编写的主类的 实例对象,然后调用 main 方法,开始执行我们的代码(注意,我们的 spark 程序中的...原创 2019-02-15 23:33:08 · 690 阅读 · 0 评论 -
基于SparkSql的日志分析实战
目录日志数据内容用户行为日志分析的意义离线数据处理流程需求分析数据清洗解析访问日志使用github上的开源项目对日志进行统计分析 统计最受欢迎的TOPN的视频访问次数按照地市统计imooc主站最受欢迎的TOPN课程按流量统计imooc主站最受欢迎的TOPN课程调优点EChart展示图形化界面静态数据展示动态数据展示日志数据...原创 2019-02-21 16:26:16 · 1041 阅读 · 0 评论 -
Spark----Spark 的运行流程
Spark 的运行流程 1、Spark 的基本运行流程 1、构建 DAG使用算子操作 RDD 进行各种 transformation 操作,最后通过 action 操作触发 Spark 作业运行。 提交之后 Spark 会根据转换过程所产生的 RDD 之间的依赖关系构建有向无环图。 2、DAG 切割DAG 切割主要根据 RDD 的依赖是否为宽依赖来决定切割节点,...原创 2019-02-14 23:33:43 · 342 阅读 · 0 评论 -
Spark----Spark 的核心概念
Spark 的核心概念 大多数应该都要有实际写过 Spark 程序和提交任务到 Spark 集群后才有更好的理解 1、Application:表示你的应用程序,包含一个 Driver Program 和若干 Executor 2、Driver Program:Spark 中的 Driver 即运行上述 Application 的 main()函数并且创建 SparkContext,...原创 2019-02-14 23:28:15 · 309 阅读 · 0 评论 -
Spark---Spark 集群安装
1、Spark 版本选择 三大主要版本:Spark-0.XSpark-1.X(主要 Spark-1.3 和 Spark-1.6)Spark-2.X官网首页:http://spark.apache.org/downloads.html 或者其他镜像站: https://mirrors.tuna.tsinghua.edu.cn/apache/spark/https:...原创 2019-02-09 20:34:03 · 160 阅读 · 0 评论 -
Spark ---Spark 的基本使用
Spark 的基本使用 1、执行第一个 Spark 程序 利用 Spark 自带的例子程序执行一个求 PI(蒙特卡洛算法)的程序: $SPARK_HOME/bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master spark://hadoop02:7077 \ --executor-memor...原创 2019-02-09 20:43:47 · 574 阅读 · 0 评论 -
Spark----Spark内存管理
Spark内存管理Spark 作为一个基于内存的分布式计算引擎,其内存管理模块在整个系统中扮演着非常重要的角色。理解 Spark 内存管理的基本原理,有助于更好地开发 Spark 应用程序和进行性能调优。本文中阐述的原理基于 Spark 2.1 版本。 在执行 Spark 的应用程序时,Spark 集群会启动 Driver 和 Executor 两种 JVM 进程,前者为主控进程,负责创建...原创 2019-02-18 00:15:17 · 337 阅读 · 0 评论 -
Spark Core 核心知识--RDD
RDD1、RDD 概述1.1、什么是 RDD RDD(Resilient Distributed Dataset)叫做分布式数据集,是 Spark 中最基本的数据抽象,它 代表一个不可变、可分区、里面的元素可并行计算的集合。RDD 具有数据流模型的特点: 自动容错、位置感知性调度和可伸缩性。RDD 允许用户在执行多个查询时显式地将工作集缓 存在内存中,后续的查询能够重用工作集,这极大地...原创 2019-02-11 23:23:43 · 233 阅读 · 0 评论 -
Spark ----Spark 核心概述
1、Spark 核心功能 Spark Core 提供 Spark 最基础的最核心的功能,主要包括: SparkContext 通常而言,DriverApplication 的执行与输出都是通过 SparkContext 来完成的,在正式提交 Application 之前,首先需要初始化 SparkContext。SparkContext 隐藏了网络通信、分布式 部署、消息通信、存储...原创 2019-02-11 23:10:34 · 577 阅读 · 0 评论 -
Spark----SparkContext解析
SparkContext解析SparkContext是用户通往Spark集群的唯一入口,任何需要使用Spark的地方都需要先创建SparkContext,那么SparkContext做了什么?首先SparkContext是在Driver程序里面启动的,可以看做Driver程序和Spark集群的一个连接,SparkContext在初始化的时候,创建了很多对象:上图列出了SparkCo...原创 2019-02-16 23:29:34 · 655 阅读 · 0 评论 -
Spark---数据倾斜一些代码测试
package com.spark.optimization.p2import org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}/** * 过滤掉少数几个发生数据倾斜的key,这样这些key便不会参与计算, * 也就不会再发生数据倾斜dataskew了。 * 需要注意的一点:...原创 2019-02-16 23:22:36 · 260 阅读 · 0 评论 -
Spark----关于数据倾斜
如何定位数据倾斜数据倾斜一般会发生在shuffle过程中。很大程度上是你使用了可能会触发shuffle操作的算子:distinct、groupByKey、reduceByKey、aggregateByKey、join、cogroup、repartition等。spark 调优:调优工具:1、Spark Web UI Spark内置应用运行监控工具2、Ganglia ...原创 2019-02-16 20:55:50 · 329 阅读 · 2 评论 -
Spark---Java和Scala版本的WordCount
Java版本地WordCountpackage cn.spark.core._01_core_basic;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spark.api.java.JavaRDD;import org.apache.s...原创 2019-02-09 22:51:04 · 253 阅读 · 0 评论 -
修改 Spark 的日志级别
从我们运行的 spark 程序运行的情况来看,可以看到大量的 INFO 级别的日志信息。淹没了 我们需要运行输出结果。可以通过修改 Spark 配置文件来 Spark 日志级别。 以下是详细步骤: 第一步:先进入 conf 目录[hadoop@hadoop05 conf]$ cd $SPARK_HOME/conf 第二步:准备 log4j.properties [hadoop@...原创 2019-02-09 22:27:12 · 398 阅读 · 0 评论 -
Spark----在 IDEA 中编写 WordCount 程序
Spark Shell 仅在测试和验证我们的程序时使用的较多,在生产环境中,通常会在 IDEA 中编写程序,然后打成 jar 包,然后提交到集群,最常用的是创建一个 Maven 项目,利用 Maven 来管理 jar 包的依赖。 1、创建一个 IDEA 的 maven 项目 2、选择 Maven 项目,然后点击 next 3、填写 maven 的 GAV,然后点击 next ...原创 2019-02-09 22:24:43 · 501 阅读 · 0 评论