![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spark
文章平均质量分 59
巴拉巴拉朵
这个作者很懒,什么都没留下…
展开
-
Spark参数优化
Spark参数优化spark conf 中加入一些参数,会加速shuffle过程,这里根据数据量实际大小可以调节下面一些参数,实践中会对于大数据量JOIN能加速20%以上spark.default.parallelism 是控制每个stage的默认stage数量,一般是对RDD有效,而参数spark.sql.shuffle.partitions是控制spark sql的shuffle分区数量spark.default.parallelism=1000spark.sql.shuffle.parti原创 2022-03-04 17:39:04 · 2402 阅读 · 0 评论 -
采坑记Memory is not enough for task serialization: java.lang.OutOfMemoryError
采坑记 Memory is not enough for task serialization: java.lang.OutOfMemoryError背景:一个每天跑的Spark程序突然出现Memory is not enough for task serialization: java.lang.OutOfMemoryError 这样的OOM错误,具体错误如下。怀疑是输入数据变大导致结果变大,加大executor内存,每个core的内存直接翻一倍重跑,还是失败;怀疑数据中有极端长的字符串导致,每个cor原创 2021-01-30 14:29:03 · 620 阅读 · 2 评论 -
scala做embedding的average操作
scala做embedding的average操作使用 breeze.linalg 来对embedding向量处理breeze.linalg 库可以对矩阵向量做很多操作,普通的加减乘除,点乘叉乘,都能支持import breeze.linalg.DenseVectorimport org.apache.spark.ml.linalg.{Vector, Vectors}import org.apache.spark.sql.{DataFrame, SaveMode, SparkSession}im原创 2020-08-23 12:04:52 · 386 阅读 · 0 评论 -
Spark的Word2Vec示例
Spark的Word2Vec示例这里演示Spark的ml包里面Word2Vec的训练与加载过程import org.apache.spark.ml.feature.{Word2Vec, Word2VecModel}import org.apache.spark.ml.linalg.Vectorimport org.apache.spark.sql.{DataFrame, SaveMode, SparkSession}/** * 从句子训练得到Embedding */object Tex原创 2020-08-23 11:46:33 · 1124 阅读 · 0 评论 -
scala操作Hadoop Api改变目录权限成777及写入单个hdfs文件
scala操作Hadoop Api改变目录权限成777及写入单个hdfs文件Hadoop 2.7.0支持修改目录的权限,可以修改成任意权限。这个问题的背景是,如果是某个人生成了一个hdfs路径,同一个group的成员如果想修改这个路径上面的内容,需要重新写入hdfs路径,在新的Hadoop Api这里会存在权限问题,必须将目录的权限修改下才能写入。如果想单独在某个hdfs目录下面写入一个文件,可以使用FSDataOutputStream类。spark生成的hdfs都是目录,这里使用输出流可以单独原创 2020-08-23 11:16:56 · 1071 阅读 · 0 评论 -
Spark DataFrame内置sql函数总结
Spark DataFrame sql函数总结Spark DataFrame内置了200+个函数供使用,包括聚合、集合、时间、字符串、数学、排序、窗口、UDF等多类函数,是个十分齐全的百宝箱,灵活运用可以事半功倍。用之前需要导入sql函数import org.apache.spark.sql.functions._ 自定义UDF函数如果觉得百宝箱不够用,需要自己造个轮子,可以用udf来...原创 2020-04-12 19:33:14 · 877 阅读 · 0 评论 -
Spark批量读写Redis
Spark批量读写Redis需要新加入Redis的依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.0.1...原创 2019-11-03 00:35:18 · 6369 阅读 · 0 评论 -
Spark DataFrame学习笔记
Spark DataFrame学习笔记对于结构性数据,Spark的DataFame是一大利器,Spark的DataFrame相比于RDD来讲做了很多底层的优化,在数据处理上面非常有效。Spark使用了可扩展优化器Catalyst,因为知道每一列数据的具体类型,算子可以单独的在某个列上运作,优化器优化了Spark SQL的很多查询规则,速度对比可以看下网友的测试结果。DataFame的访问大体...原创 2019-07-29 20:32:27 · 372 阅读 · 0 评论 -
Scala操作HDFS
Scala操作HDFS基本的HDFS操作包括:获取文件系统、检查文件是否存在、列举当前目录下的所有文件路径、列举当前目录下的所有文件名称、删除当前路径、创建新的路径import org.apache.hadoop.confimport org.apache.hadoop.conf.Configurationimport org.apache.hadoop.fs.{FileStatus, F...原创 2019-07-23 22:51:15 · 2686 阅读 · 0 评论 -
Spark的flatMap算子引发的数据倾斜问题
Spark的flatMap算子引发的数据倾斜问题问题背景Spark中有时候会用到flatMap算子来处理数据,flatMap把序列打平,即将每一条记录变成多条记录。这个算子在数据量大的时候经常会发生数据倾斜问题,你会发现一旦原始数据记录到达亿级、十亿级甚至百亿级时,这个算子会非常令人头疼,任务一直卡在最后一个或者几个task上面,毫无进展,GC日志会显示“not enough memory”,...原创 2019-06-03 15:52:53 · 1073 阅读 · 0 评论 -
Spark读取HBase示例
Spark读取HBase示例Spark读取HBase需要理清HBase的配置,这里给出一个实际的示例。Spark读取Hbase的时候要注意一次读取的记录数量,需要参考hbase机器的QPS和业务的并发使用情况来设置一次最多读取多少条合适,不然如果业务并发大很可能就会把Hbase集群搞崩溃。import org.apache.hadoop.hbase.HBaseConfigurationim...原创 2019-04-13 22:27:02 · 803 阅读 · 0 评论 -
Scala日志SLF4J配置
Scala日志配置scala的日志与java的基本相同,看到网上一篇入门讲解的非常详细java日志使用记录log4j使用总结,作者是习翔宇Spark默认的日志配置文件路径在spark-2.1.1-bin-hadoop2.7文件夹下面,例如D:\ProgramData\spark-2.1.1-bin-hadoop2.7\conf\log4j.properties我们可以把log4j.prope...原创 2019-04-02 23:52:58 · 5273 阅读 · 0 评论 -
Spark DataFrame读取外部文件并解析数据格式
Spark DataFrame读取外部文件并解析数据格式Spark DataFame实际是DataSet的一个特殊类型,DataFrame对sql过程做很了很多优化。现在DataFrame用起来和Python的Pandas一样方便了,这里记录一下DataFrame读取外部文件并解析的过程。type DataFrame = Dataset[Row]spark读取csv文件有许多参数可以设置,...原创 2019-03-28 21:42:27 · 5425 阅读 · 0 评论 -
Factorization Machine的一些总结
Factorization Machine的一些小结FMFM使用了矩阵分解的思想学习组合特征的系数二阶FM可以通过公式化简将时间复杂度降低到O(kn),三阶及以上无法化简,时间复杂度较高FM的分解中factor因子一般取的比较小,一方面可以减少需要学习的参数,另外一方面可以提高泛化能力libFM是比较早出现的算法包,后面出现了Spark实现的FMFM学习算法SGD算法可以求解分...原创 2019-04-10 21:31:21 · 1480 阅读 · 0 评论 -
Intellij IDEA构建Spark2.0以上工程示例
Intellij IDEA新建Spark2.0以上Maven工程示例长时间不用IDEA新建工程,新建的步骤都忘记了,再次记录一下,Spark新版中SparkSession需要依赖的包与SparkContext不一样,需要导入的jar包也是不同的。这里需要安装Java的JDK,新建工程会用到。首先,新建工程New -> Project选择Maven工程,选择JDK版本命名Group...原创 2019-03-27 20:03:37 · 4210 阅读 · 3 评论 -
从逻辑回归实例入手简单介绍Spark机器学习模块
Spark 机器学习——逻辑回归Spark机器学习的基础知识有一篇文章写的很浅显易懂,附上文章地址 spark-ML基础这里用Spark的逻辑回归进行分类的实例,分类数据集来自UGI 葡萄酒数据集类别样本数量class 159class 271class 348该数据集有13个属性,没有缺失值,可以直接看到数据 http://archive.ics...原创 2019-03-31 11:33:35 · 395 阅读 · 0 评论 -
Spark任务一直停在某个Stage不动问题
解决Spark莫名卡住问题有时候Spark任务莫名会在某个Stage卡住,然后一直停在那里,如果任务重新跑的话又是没有问题的,在实际项目中如果这样的任务出现了,需要仔细分析Spark的log,这样的情况一般是数据不均衡导致的某个节点任务量偏大,而这个节点分配不到太多内存(其他还有很多任务都在这里运行)导致任务卡顿。有几个参数非常有效,主要是Spark的任务推测执行参数,任务推测执行默认是不开启的...原创 2019-03-24 18:36:11 · 12909 阅读 · 0 评论