Spark
文章平均质量分 83
Data_IT_Farmer
BJUT 2014级 计算机学院小硕一枚,现为某上市金融公司--高级大数据开发工程师一枚。自20170701开始记录自己的技术工作生涯!广结天下技术之友,笑对未来技术之难题!
展开
-
Spark DataFrame 的窗口函数使用的两种形式介绍
1、概述上文介绍了sparkdataframe常用操作算子。除此外,spark还有一类操作比较特别——窗口函数。窗口函数常多用于sql,spark sql也集成了,同样,spark dataframe也有这种函数,spark sql的窗口函数与spark dataframe的写法不太一样。1.1、spark sql 写法select pcode,event_date,sum(duration) over (partition by pcode order by event_date as.转载 2021-07-27 13:34:24 · 3639 阅读 · 0 评论 -
Spark机器学习API之特征处理
关键字:spark、机器学习、特征处理、特征选择Spark机器学习库中包含了两种实现方式,一种是spark.mllib,这种是基础的API,基于RDDs之上构建,另一种是spark.ml,这种是higher-level API,基于DataFrames之上构建,spark.ml使用起来比较方便和灵活。Spark机器学习中关于特征处理的API主要包含三个方面:特征提取、特征转换与特征选择。本文通过例子介绍和学习Spark.ml中提供的关于特征处理API中的特征选择(Feature Selectors)转载 2021-06-20 20:31:42 · 431 阅读 · 0 评论 -
Spark MLlib实现的中文文本分类–Naive Bayes
关键字:spark mllib、文本分类、朴素贝叶斯、naive bayes文本分类是指将一篇文章归到事先定义好的某一类或者某几类,在数据平台的一个典型的应用场景是,通过爬取用户浏览过的页面内容,识别出用户的浏览偏好,从而丰富该用户的画像。本文介绍使用Spark MLlib提供的朴素贝叶斯(Naive Bayes)算法,完成对中文文本的分类过程。主要包括中文分词、文本表示(TF-IDF)、模型训练、分类预测等。中文分词对于中文文本分类而言,需要先对文章进行分词,我使用的是IKAnalyzer中转载 2021-06-20 18:14:21 · 1902 阅读 · 0 评论 -
spark提交任务的三种的方法
spark提交任务的三种的方法在学习Spark过程中,资料中介绍的提交Spark Job的方式主要有三种:1、使用spark 自带的spark-submit工具提交任务通过命令行的方式提交Job,使用spark 自带的spark-submit工具提交,官网和大多数参考资料都是已这种方式提交的,提交命令示例如下:./spark-submit --class com.learn.spark.SimpleApp --master yarn --deploy-mode client --driver-转载 2021-04-25 14:46:13 · 8927 阅读 · 0 评论 -
如何为Spark应用程序分配--num-executors,--execuor-cores和--executor-memory
如何为Spark应用程序分配--num-executors,--execuor-cores和--executor-memory1、前言在我们提交spark程序时,应该如何为Spark集群配置–num-executors, - executor-memory和–execuor-cores 呢?1.1、一些资源参数设置的基本知识Hadoop / Yarn / OS Deamons 当我们使用像Yarn这样的集群管理器运行spark应用程序时,会有几个守护进程在后台运行,如NameN...转载 2021-04-16 21:13:32 · 735 阅读 · 0 评论 -
Spark任务的core,executor,memory资源配置方法
Spark任务的core,executor,memory资源配置方法1、概述执行Spark任务,资源分配是很重要的一方面。如果配置不准确,Spark任务将耗费整个集群的机缘导致其他应用程序得不到资源。怎么去配置Spark任务的executors,cores,memory,有如下几个因素需要考虑:数据量 任务完成时间点 静态或者动态的资源分配 上下游应用2、Spark应用当中术语的基本定义:Partitions: 分区是大型分布式数据集的一小部分。 Spark使用分区来管理数据,.转载 2021-04-16 20:56:00 · 7165 阅读 · 2 评论 -
spark报错:java.io.IOException: Filesystem closed
1.问题描述往集群提交任务的时候,需要在hdfs上面读取一个资源文件。在读取该资源文件的时候,代码报错出如下:2021-01-29 09:48:29,023 ERROR scheduler.AsyncEventQueue: Listener EventLoggingListener threw an exceptionjava.io.IOException: Filesystem closed at org.apache.hadoop.hdfs.DFSClient.checkOpen(DFSC转载 2021-01-29 10:19:24 · 4365 阅读 · 1 评论 -
Spark SQL中rdd转换成DataFrame的五种方式
Spark SQL中生成DataFrame的五种方式以前公司用的是spark-core,但是换工作后用的多是spark-sql,spark-dataframe。最近学习了很多spark-dataframe,在此做一个有spark经验的spark dataframe快速入门的教程。方式一、定义一个case class类,将其作为RDD中的存储类型,然后导包import spark.implicts._ 最后直接调用RDD的方法即:toDF方法即可生成DataFrame/** *原创 2021-01-24 18:07:27 · 3079 阅读 · 0 评论 -
scala spark dataframe和rdd 获取分区个数及每个分区的内容
1 dataframe获取分区个数scala> // 构造测试数据源scala> val df = spark.sparkContext.makeRDD(1.to(100), 4).toDF("id")df: org.apache.spark.sql.DataFrame = [id: int]scala> // 获取分区个数scala> val partition_num=df.rdd.partitions.lengthpartition_num: Int =原创 2020-12-27 15:43:09 · 5124 阅读 · 0 评论 -
Scala Spark 中Map和Json字符串相互转换
1. Map转JsonStringMap转Json的String,首先在pom中添加json4s-native的依赖,一般使用如下方式就可以得到结果import org.json4s.jackson.JsonMethods._object Test { def main(args: Array[String]): Unit = { val mapTest = Map("a" -> "1", "b" -> 2) println(compact(rend...转载 2020-12-16 21:19:48 · 2546 阅读 · 0 评论 -
Spark模拟实现统计出每个域名下面访问次数最多的前三个URL
Spark模拟实现统计出每个域名下面访问次数最多的前三个URL一、需求:现在假设有一个IT教育网站,有Java,PHP,net等多个栏目,下面是模拟实现的网站日志第一个字段是访问日期,第二个字段是访问的URL,其中每个栏目有一个独立域名,如下:java.aaaaaaa.cnnet.aaaaaaa.cnphp.aaaaaaa.cn统计出每个域名下面访问次数最多的前三个URL...原创 2020-01-02 16:47:21 · 1044 阅读 · 0 评论 -
【spark源码系列】pyspark.sql.Row介绍和使用示例
0、Spark SQL和DataFrames重要的类有:pyspark.sql.SQLContext: DataFrame和SQL方法的主入口 pyspark.sql.DataFrame: 将分布式数据集分组到指定列名的数据框中 pyspark.sql.Column :DataFrame中的列 pyspark.sql.Row: DataFrame数据的行 pyspark.sql.Hiv...原创 2019-12-08 11:36:15 · 7221 阅读 · 2 评论 -
【源码解读系列之spark】Spark RDD缓存函数cache() 和 persist()原理和使用
1、RDD的缓存级别顺便看一下RDD都有哪些缓存级别,查看storagelevel.py代码StorageLevel类如下:__all__ = ["StorageLevel"]class StorageLevel(object): """ Flags for controlling the storage of an RDD. Each StorageLevel...原创 2019-11-24 12:20:33 · 723 阅读 · 0 评论 -
Spark中加载本地(或者hdfs)文件以及 spark使用SparkContext实例的textFile读取多个文件夹(嵌套)下的多个数据文件
Spark中加载本地(或者hdfs)文件以及 spark使用SparkContext实例的textFile读取多个文件夹(嵌套)下的多个数据文件textFile的参数是一个path,这个path可以是:1. 一个文件路径,这时候只装载指定的文件3. 通过通配符的形式加载多个文件或者加载多个目录下面的所有文件转载 2017-11-08 16:45:55 · 40230 阅读 · 1 评论 -
Spark算子——RDD键值转换操作–leftOuterJoin、rightOuterJoin、subtractByKey
Spark算子——RDD键值转换操作–leftOuterJoin、rightOuterJoin、subtractByKey一、leftOuterJoindef leftOuterJoin[W](other: RDD[(K, W)]): RDD[(K, (V, Option[W]))]def leftOuterJoin[W](other: RDD[(K, W)], numPartiti...转载 2018-12-08 12:52:28 · 745 阅读 · 0 评论 -
pyspark rdd连接函数之join、leftOuterJoin、rightOuterJoin和fullOuterJoin、union函数介绍
各种JOIN在Spark Core中的使用一. inner joininner join,只返回左右都匹配上的>>> data2 = sc.parallelize(range(6,15)).map(lambda line:(line,1))>>> data2.collect()[(6, 1), (7, 1), (8, 1), (9, 1), (...转载 2019-03-30 11:01:01 · 3189 阅读 · 0 评论 -
PySpark中RDD与DataFrame相互转换操作
1. 弹性数据集RDD RDD是一个抽象的分布式数据集合,它提供了一系列转化操作(例如基本的map()、flatMap()、filter(),类集合操作union()、intersection()、subtract())和行动操作(例如collect()、count()、take()、top()、reduce()、foreach())。可以说,RDD是非常灵活的数据集合,其中可以存放...转载 2019-04-20 11:37:06 · 36347 阅读 · 2 评论 -
PySpark之aggregate函数,查看分区数量getNumPartitions()和查看每个分区的内容glom()介绍
聚集各分区内的元素,并利用combOp和zerovalue函数将各分区合并The functionsop(t1, t2)is allowed to modifyt1and return it as its result value to avoid object allocation; however, it should not modifyt2.函数op(t1, t2...转载 2019-04-20 16:02:00 · 3957 阅读 · 0 评论 -
spark用正则表达式处理需要将多个输入文件路径作为输入的问题
一、spark用正则表达式处理需要将多个输入文件路径作为输入的问题1、spark需要处理过去半个月的数据,每天的数据再hdfs上存到一个文件中,将近15个输入目录,此时可以采用如下正则匹配的写法,将代码简化:import datetimedef produce_half_month(thedate): current_day = thedate # current_da...转载 2019-05-19 20:48:40 · 2119 阅读 · 0 评论 -
【spark exception】org.apache.spark.SparkException java.lang.ArrayIndexOutOfBoundsException 造成数组越界
【spark exception】org.apache.spark.SparkException java.lang.ArrayIndexOutOfBoundsException 造成数组越界当执行以下spark-sql是时候insert overwrite table hive_user_income_detail_daily partition (pday='20190620',i...原创 2019-06-28 17:01:10 · 3491 阅读 · 0 评论 -
pyspark之DataFrame数据处理学习【数据去重之一】
pyspark之DataFrame数据处理学习【数据去重之一】1、重复数据,例如spark = SparkSession.builder.appName("dataDeal").getOrCreate()df = spark.createDataFrame([ (1, 144.5, 5.9, 33, 'M'), (2, 167.2, 5.4, 45, 'M'), ...转载 2018-10-17 21:00:15 · 13291 阅读 · 0 评论 -
Spark资源调度和任务调度过程介绍
Spark资源调度和任务调度过程介绍(ps.未验证)一、前述Spark的资源调度是个很重要的模块,只要搞懂原理,才能具体明白Spark是怎么执行的,所以尤其重要。自愿申请的话,本文分粗粒度和细粒度模式分别介绍。二、具体Spark资源调度流程图: Spark资源调度和任务调度的流程: 1、启动集群后,Worker...转载 2018-08-09 11:23:13 · 6276 阅读 · 0 评论 -
Spark pyspark rdd连接函数之join、leftOuterJoin、rightOuterJoin和fullOuterJoin介绍
Spark pyspark rdd连接函数之join、leftOuterJoin、rightOuterJoin和fullOuterJoin介绍union用于组合两个rdd的元素,join用于内连接,而后三个函数(leftOuterJoin,rightOuterJoin,fullOuterJoin)用于类似于SQL的左、右、全连接。针对key-value形式的RDD。例子:1)数据初始化>&g...转载 2018-02-26 19:27:45 · 25011 阅读 · 4 评论 -
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换代码如下:# -*- coding: utf-8 -*-import pandas as pdfrom pyspark.sql import SparkSessionfrom pyspark.sql import SQLContextfrom pyspark import SparkContext...转载 2018-02-26 11:37:16 · 1100 阅读 · 0 评论 -
Apache Spark探秘:三种分布式部署方式比较
Apache Spark探秘:三种分布式部署方式比较目前Apache Spark支持三种分布式部署方式,分别是standalone、spark on mesos和 spark on YARN,其中,第一种类似于MapReduce 1.0所采用的模式,内部实现了容错性和资源管理,后两种则是未来发展的趋势,部分容错性和资源管理交由统一的资源管理系统完成:让Spark运行在一个通用的资源管理系统之上,这...转载 2018-02-08 21:00:22 · 528 阅读 · 0 评论 -
Spark性能优化涉及的相关参数配置(中文版wiki)
Spark性能优化涉及的相关参数配置(中文版wiki)Spark性能相关参数配置随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 在Spark的官方文档http://spark.apache.org/docs/latest/configuration.html 中提供了这些可配置参数中相当大一部分的说明.但是文档的更新总是落后于代转载 2018-02-03 15:10:44 · 239 阅读 · 0 评论 -
RDD持久化原理与共享变量
RDD 持久化工作原理Spark非常重要的一个功能特性就是可以将RDD 持久化在内存中,当对RDD执行持久化操作时,每个节点都会将自己操作的RDD的partition持久化到内存中,并且在之后对该RDD的反复使用中,直接使用内存缓存的partition,这样的话,对于针对一个RDD反复执行多个操作的场景,就只要对RDD计算一次即可,后面直接使用该RDD ,而不需要计算多次该RDD 巧妙使用R...转载 2018-01-23 11:06:10 · 374 阅读 · 0 评论 -
【Spark】RDD处理程序运行原理解释和它的Transformation和Actions操作详解
【Spark】RDD处理程序运行原理解释和它的Transformation和Actions操作详解(1) Spark 程序运行运行原理解释:下图描述了Spark的输入、 运行转换、 输出。 在运行转换中通过算子对RDD进行转换。算子是RDD中定义的函数,可以对RDD中的数据进行转换和操作。 1)输入:在Spark程序运行中,数据从外部数据空间(如分布式存储:textFile读取HDFS等,parallelize方法输入Scala集合或数据)输入Spark,数据进入Spark运行时数据空间,转化为S转载 2017-11-08 19:46:08 · 491 阅读 · 0 评论 -
spark的RDD中的action(执行)和transformation(转换)两种操作中常见函数介绍
spark的RDD中的action(执行)和transformation(转换)两种操作中常使用的函数(1) 弹性分布式数据集(RDD) Spark是以RDD概念为中心运行的。RDD是一个容错的、可以被并行操作的元素集合。创建一个RDD有两个方法:在你的驱动程序中并行化一个已经存在的集合;从外部存储系统中引用一个数据集。RDD的一大特性是分布式存储,分布式存储在最大的好处是可以...转载 2017-11-08 19:12:53 · 25229 阅读 · 1 评论 -
在mac上安装下pySpark,并且在pyCharm中python调用pyspark
在mac上安装下pySpark,并且在pyCharm中python调用pyspark。目前用python比较多,所以想安装下pySpark,并且在pyCharm中调用。Windows安装pySpark,并且在pyCharm中调用例子参见网址ython 利用pyspark 直接在本地操作spark,运行spark程序原创 2017-10-13 17:16:55 · 9616 阅读 · 0 评论 -
以hdfs上文件或者本地文件作为输入在Pycharm中运行spark程序代码示例
以hdfs上文件或者本地文件作为输入在Pycharm中运行spark程序,并将计算结果保存到hdfs上的python代码示例(1)准备输入数据文件:准备输入数据文件2017-11-01.txt和2017-11-10.txt,每行每个字段以"\t"分割,行之间用换行符分割,并上传到hdfs上/input目录下。内容如下:localhost:experiment_data a6$ more 2017-...原创 2017-11-07 19:39:14 · 1657 阅读 · 0 评论 -
Spark groupByKey,reduceByKey,sortByKey算子的区别
Spark groupByKey,reduceByKey,sortByKey算子的区别1、groupByKey groupByKey是对每个key进行合并操作,但只生成一个sequence,groupByKey本身不能自定义操作函数。# -*- coding:utf-8 -*-from pyspark import SparkConffrom pyspark import SparkConte...转载 2018-03-08 10:08:03 · 5540 阅读 · 0 评论 -
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换代码示例:# -*- coding: utf-8 -*-import pandas as pdfrom pyspark.sql import SparkSessionfrom pyspark.sql import SQLContextfrom pyspark import SparkCont...转载 2018-05-21 19:50:15 · 5906 阅读 · 2 评论 -
Spark与Hadoop关系
Spark与Hadoop关系Spark是一个计算框架Hadoop是包含计算框架MapReducehe分布式文件系统HDFS。Spark是MapReduce的替代方案,而且兼容HDFS、Hive等分布式存储系统,可融入Hadoop生态。0、Spark与Hadoop MapReduce优势如下1)、中间结果输出 MapReduce的计算引擎将中间结果存储在磁盘上,进行存储和...转载 2018-08-09 10:53:58 · 3745 阅读 · 0 评论 -
Spark SQL和DataFrames支持的数据格式
Spark SQL和DataFrames支持的数据格式如下:数值类型 ByteType: 代表1字节有符号整数. 数值范围: -128 到 127. ShortType: 代表2字节有符号整数. 数值范围: -32768 到 32767. IntegerType: 代表4字节有符号整数. 数值范围: -2147483648 t到 2147483647. LongType: 代表8字节有...转载 2018-07-25 14:17:51 · 1680 阅读 · 0 评论 -
pyspark 写入MySQL报错 An error occurred while calling o45.jdbc.: scala.MatchError: null 解决方案
当我尝试使用pySpark连接MySQL,将简单的spark dataframe写入MySQL数据时报错,py4j.protocol.Py4JJavaError: An error occurred while calling o45.jdbc.: scala.MatchError: null 错误解决方案(1)错误提示:Fri Jul 13 16:22:56 CST 2018 WARN: Est...原创 2018-07-13 16:43:25 · 9449 阅读 · 0 评论 -
pyspark连接MySQL出错 java.sql.SQLException: No suitable driver
pyspark连接MySQL出错py4j.protocol.Py4JJavaError: An error occurred while calling o26.load.: java.sql.SQLException: No suitable driver 解决方法错误提示:Using Spark's default log4j profile: org/apache/spark/log4j-d...原创 2018-07-13 10:44:41 · 6665 阅读 · 5 评论 -
查看进程状态信息命令 jps - (Java Virtual Machine Process Status Tool) 命令介绍
jps 名称: jps - Java Virtual Machine Process Status Tool 命令介绍jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。jps主要用来输出JVM中运行的进...转载 2018-07-18 14:28:10 · 1245 阅读 · 0 评论 -
spark读取hdfs文件的路径使用正则表达式
spark读取hdfs文件的路径使用正则表达式例子一、# -*- coding:utf-8 -*-from pyspark import SparkConffrom pyspark import SparkContextimport osif __name__ == '__main__': os.environ["SPARK_HOME"] = "/Users/a6/App...原创 2018-07-17 13:31:49 · 7341 阅读 · 0 评论 -
pyspark-hdfs数据操作函数介绍
一、SparkContext API1、读取hdfs数据转成numpy#!/usr/bin/python# -*- coding: UTF-8 -*-from pyspark import SparkContext,SparkConfimport numpy as npimport pickledirPath='hdfs://xxx/user/root/data_16/11/lab...转载 2018-06-20 00:01:28 · 2253 阅读 · 0 评论