spark
卡奥斯道
技术时代的你,愿为技术付出
展开
-
spark.read.option(jdbc)参数
Property Name Meaning url The JDBC URL to connect to. The source-specific connection properties may be specified in the URL. e.g.,jdbc:postgresql://localhost/test?user=fred&password=secre...原创 2019-10-25 14:45:42 · 5598 阅读 · 0 评论 -
Spark性能相关参数配置及原理
转自:http://blog.csdn.net/ZYC88888/article/details/78531462Spark性能相关参数配置¶http://spark-config.readthedocs.io/en/latest/#概述随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 在Spark的官方文档http://sp转载 2017-11-16 15:04:57 · 418 阅读 · 0 评论 -
reduce,aggregate和groupBy
官网说明:groupBy:This operation may be very expensive. If you are grouping in order to perform anaggregation (such as a sum or average) over each key, using `PairRDDFunctions.aggregateByKey`or `Pa原创 2017-11-16 15:12:42 · 580 阅读 · 0 评论 -
pyspark An error occurred while calling o30.jdbc. java.lang.ClassNotFoundException: com.mysql.jdbc.
1.pyspark读取mysql错误from pyspark.sql import SparkSessionif __name__ == '__main__': spark = SparkSession.Builder() \ .appName('t') \ .master('local') \ .getOrCreate() ...原创 2018-07-16 13:32:59 · 5919 阅读 · 0 评论 -
Spark 将dataFrame 转为 DataSet
一、dataFrame转为DataSet第一种方式:通过classval s = spark.sql( """ |select "1" id,1.1 f2,1.2 f3 |union all |select "2" id,1.1 f2,1.1 f3 """....原创 2018-09-06 16:03:52 · 1994 阅读 · 1 评论 -
spark读取csv文件,中文乱码,同一单元格同时出现引号逗号(",)串列问题,动态构建原有csv首行schema信息
/** * * @param spark * @param headerSchema 是否用csv第一行作为schema信息 * @param code csv编码格式 * @param file csv绝对路径 * @return */ def readCSV(spark:SparkSessio...原创 2018-11-15 10:23:48 · 2707 阅读 · 0 评论 -
map(Row(_))错误,需要用Row.fromSeq(_)
val rddRow = rdd.map(Row(_)) spark.createDataFrame(rddRow,schema)Caused by: java.lang.RuntimeException: Error while encoding: java.lang.RuntimeException: [Ljava.lang.String; is not a valid ext...原创 2018-11-15 10:21:56 · 3898 阅读 · 1 评论 -
Structured Streaming之outputMode(complete和append)区别说明
1.complete需要聚合,并将原先批次的数据和本次批次的数据一起聚合,而append是不能聚合的2.若用append替换complete代码演示:def main(args: Array[String]): Unit = { val spark = SparkSession.builder().master("local[1]").getOrCreate() ...原创 2019-01-04 18:40:48 · 4734 阅读 · 1 评论 -
Structured Streaming通过foreach方法向mysql插入数据
1.先写TestForeachWriter需要extends ForeachWriter,代码如下:class TestForeachWriter extends ForeachWriter[Row] with Serializable { var connection:Connection = _ var statement:Statement = _ val ip...原创 2019-01-04 18:31:20 · 1867 阅读 · 3 评论 -
rollup和cube区别(基于spark sql)以及用dataFrame代码实现
1. rollup前后对比前:|pcode|event_date|duration| +-----+----------+--------+| 1|2018-09-02| 3| | 1|2018-09-03| 2|| 1|2018-09-04| 1|...原创 2019-01-09 16:55:41 · 2107 阅读 · 0 评论 -
开窗函数以及code实现
/** * Created by Administrator on 2018/9/4. * * 总结如下: * preceding:用于累加前N行(分区之内)。若是从分区第一行头开始,则为 unbounded。 N为:相对当前行向前的偏移量 * following :与preceding相反,累加后N行(分区之内)。若是累加到该分区结束,则为 unbounded。N为:相...原创 2019-01-09 17:12:39 · 391 阅读 · 0 评论 -
spark.read.jdbc 并发设置
1. 通过predicates设置读取并行度,如果只是spark.read.jdbc(mySqlHelper.url,mysql_table,predicates,mySqlHelper.prop),则并行的是1. val ip = "" val user = "" val database = "" val password = "" val mySq...原创 2019-01-15 18:06:02 · 5011 阅读 · 0 评论 -
spark列转行
val tag = spark.sql("select id,k,v from table") val ks= tag.select("k").map(row => row.getAs[String]("k")).distinct().collect().sorted.toList tag.groupBy("id").pivot("k", labelnames).agg(max("v...原创 2019-06-13 15:32:41 · 726 阅读 · 0 评论 -
Alluxio使用场景
详见:http://blog.csdn.net/alluxio/article/details/59536999特点:多个Spark job以内存级速度共享相同的数据(可以做到多个job共享一个RDD)原创 2017-10-07 13:57:53 · 2888 阅读 · 0 评论 -
Spark的性能调优
转:http://mb.yidianzixun.com/home?page=article&id=0C6hBEKe&up=211基本概念和原则首先,要搞清楚Spark的几个基本概念和原则,否则系统的性能调优无从谈起:每一台host上面可以并行N个worker,每一个worker下面可以并行M个executor,task们会被分配到executor上面去执行。Stag转载 2017-10-08 13:18:55 · 954 阅读 · 0 评论 -
资源调度
转:https://www.2cto.com/kf/201610/557115.html 其中的资源调度部分资源调度集群当前仅支持一种先进先出的资源调度模式. 然而,为了支持多个并行的用户操作,你可以控制每一个应用程序所能使用的最大的资源. 默认情况下,应用程序将会占用你所有的cpu数量,然而这种分配方式仅仅在你只有一个应用程序需要运行的情况下是合理的. 你可以控制应用程序的核数通转载 2017-09-13 10:52:16 · 334 阅读 · 0 评论 -
spark之核心概念简介
ClusterManager:在Standalone模式中即为Master(主节点),控制整个集群,监控Worker。在YARN模式中为资源管理器。Worker:从节点,负责控制计算节点,启动Executor。在YARN模式中为NodeManager,负责计算节点的控制。Driver:运行Application的main()函数并创建SparkContext。Executor:执行器,原创 2017-08-26 09:07:48 · 284 阅读 · 0 评论 -
spark性能优化之数据倾斜
数据倾斜一般只会发生在shuffle过程中,针对不同的数据分布情况,可以采用以下几种方式针对不同的应用场景。1.分析有可能发生数据倾斜(data skew)的位置及发生数据倾斜时的现象通常会发生数据倾斜的常用方法有:distinct、groupByKey、reduceByKey、aggregateByKey、join、cogroup、repartition等等,发生数据倾斜时,可能就是原创 2017-08-25 18:11:41 · 577 阅读 · 0 评论 -
Spark源码分析之worker节点启动driver和executor
一、启动driver1.首先在Master.scala类中执行schedule()方法,该方法主要有两个方法lanuchDriver()和launchExecutor()分别用来启动driver和executor。在master上面一旦可用资源发生变动或者有新的application提交进来之后就会调用该schedule()方法。2.先去调度所有的driver,针对这些applic原创 2017-08-25 13:17:30 · 642 阅读 · 0 评论 -
spark内核执行流程简单说明
前提:基于spark standalone模式进行说明。Driver:实际是通过spark-submit脚本提交的内部创建sparkContext的main程序。sparkContext:最重要的是创建并初始化sparkContext对象。DAGScheduler:根据代码业务逻辑,将transformation划分出各个stage,再对每一个stage分配一批task,构成tasks原创 2017-08-22 13:29:43 · 333 阅读 · 0 评论 -
《Spark 官方文档》Spark调优
转自:http://ifeve.com/spark-tuning/spark-1.6.0 原文地址Spark调优由于大部分Spark计算都是在内存中完成的,所以Spark程序的瓶颈可能由集群中任意一种资源导致,如:CPU、网络带宽、或者内存等。最常见的情况是,数据能装进内存,而瓶颈是网络带宽;当然,有时候我们也需要做一些优化调整来减少内存占用,例如将RDD以序列化格式保存(st转载 2017-09-13 10:28:34 · 266 阅读 · 0 评论 -
Spark性能调优之合理设置并行度
转:http://www.cnblogs.com/haozhengfei/p/e19171de913caf91228d9b432d0eeefb.htmlSpark性能调优之合理设置并行度1.Spark的并行度指的是什么? spark作业中,各个stage的task的数量,也就代表了spark作业在各个阶段stage的并行度! 当分配完所能分配的最大资源了,然转载 2017-09-13 10:10:00 · 2422 阅读 · 0 评论 -
spark-shuffer参数调优
转自:https://tech.meituan.com/spark-tuning-pro.html 部分shuffle调优调优概述大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO、序列化、网络数据传输等操作。因此,如果要让作业的性能更上一层楼,就有必要对shuffle过程进行调优。但是也必须提醒大家的是,影响一个Spark作业性转载 2017-09-13 00:19:47 · 1484 阅读 · 0 评论 -
spark-submit参数优化配置
转自:http://blog.csdn.net/chenjieit619/article/details/53421080在开发完Spark作业之后,就该为作业配置合适的资源了。Spark的资源参数,基本都可以在spark-submit命令中作为参数设置。很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何设置这些参数,最后就只能胡乱设置,甚至压根儿不设置。资源参数设置的不合理,转载 2017-09-13 00:01:22 · 1306 阅读 · 0 评论 -
beyond virtual memory limits. Current usage: 142.3 MB of 1 GB physical memory used;
Diagnostics: Container [pid=7936,containerID=container_1505273975531_0008_02_000001] is running beyond virtual memory limits. Current usage: 142.3 MB of 1 GB physical memory used; 2.3 GB of 2.1 GB virtual memory used. Killing container.原创 2017-09-12 22:58:43 · 2713 阅读 · 1 评论 -
spark中yarn-client和yarn-cluster区别
参考:http://blog.csdn.net/trigl/article/details/72732241http://blog.csdn.net/xinganshenguang/article/details/53302526http://blog.csdn.net/high2011/article/details/67637338摘要在Spark中,有转载 2017-09-12 18:05:36 · 5839 阅读 · 3 评论 -
Spark优化:禁止应用程序将依赖的Jar包传到HDFS
转: https://www.iteblog.com/archives/1173.html每次当你在Yarn上以Cluster模式提交Spark应用程序的时候,通过日志我们总可以看到下面的信息:21Oct 201414:23:22,006INFO [main] (org.apache.spark.Logging$class.lo转载 2017-09-25 11:06:22 · 1419 阅读 · 0 评论 -
大数据常见错误解决方案
大数据常见错误解决方案(转载)http://www.cnblogs.com/cstzhou/p/6437270.html1、用./bin/spark-shell启动spark时遇到异常:java.net.BindException: Can't assign requested address: Service 'sparkDriver' failed after 16 retries转载 2017-09-13 16:14:49 · 3164 阅读 · 0 评论 -
parquet压缩格式参数设置以及简单操作
Parquet 文件会在 gzip 中自动压缩,因为 Spark 变量 spark.sql.parquet.compression.codec 已在默认情况下设置为 gzip。您还可以将压缩编解码器设置为 uncompressed、snappy 或 lzoobject Save2Parquet { def main(args: Array[String]): Unit = {原创 2017-09-25 18:05:24 · 10436 阅读 · 0 评论 -
读写parquet格式文件的几种方式
转:http://blog.csdn.net/woloqun/article/details/76068147摘要本文将介绍常用parquet文件读写的几种方式1.用spark的hadoopFile api读取hive中的parquet格式文件2.用sparkSql读写hive中的parquet格式3.用新旧MapReduce读写parquet格式文件转载 2017-09-25 18:31:49 · 8835 阅读 · 0 评论 -
将 Spark 中的文本转换为 Parquet 以提升性能
转:https://www.ibm.com/developerworks/cn/analytics/blog/ba-parquet-for-spark-sql/列式存储布局(比如 Parquet)可以加速查询,因为它只检查所有需要的列并对它们的值执行计算,因此只读取一个数据文件或表的小部分数据。Parquet 还支持灵活的压缩选项,因此可以显著减少磁盘上的存储。如果您在 HDFS转载 2017-09-25 18:10:22 · 498 阅读 · 0 评论 -
spark源码分析之DAGScheduler提交作业(job)过程、stage阶段说明
1.DAGScheduler.scala主要作用:1.DAGScheduler为每一个job中计算出针对每一个stage的DAG,同时追踪与之对应的rdd,每一个阶段输出进行物化(输出保存到磁盘),同时找到一条运行spark job最有路径,根据是否有cache、是否有checkPoint。完毕之后将每一个阶段作为一个TaskSet责成内部在创建DAGScheduler对象原创 2017-08-26 09:54:42 · 764 阅读 · 0 评论 -
spark之实用案例
运行环境介绍为了避免读者对本文案例运行环境产生困惑,本节会对本文用到的集群环境的基本情况做个简单介绍。本文所有实例数据存储的环境是一个 8 个机器的 Hadoop 集群,文件系统总容量是 1.12T,NameNode 叫 hadoop036166, 服务端口是 9000。读者可以不关心具体的节点分布,因为这个不会影响到您阅读后面的文章。本文运行实例程序使用的 Spark 集转载 2017-08-21 19:24:17 · 13027 阅读 · 0 评论