![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spark
文章平均质量分 68
TheBiiigBlue
这个作者很懒,什么都没留下…
展开
-
Spark -- Spark3.2.2集成Hudi 0.11.1并同步Hive 3.1.3
Spark、Hudi、Hive原创 2022-07-21 11:55:06 · 1337 阅读 · 2 评论 -
Spark -- 读取mysql的4种方式和各自的应用场景
spark read mysql原创 2022-07-18 13:39:26 · 8981 阅读 · 0 评论 -
Spark -- 直接读写Excel文件
参考GitHub:https://github.com/crealytics/spark-excel 我使用了0.13.1版本的,此版本在读Excel时,必须指定文件,不能指定目录,否则报错。<dependency> <groupId>com.crealytics</groupId> <artifactId>spark-excel_2.11</artifactId> <version>0.13.1<原创 2020-08-10 13:35:58 · 5674 阅读 · 8 评论 -
Spark -- cache和unpersist的正确用法
向导背景原理例子失败案例成功案例背景 cache和unpersist没有使用好,跟根本没用没啥区别,例如下面的例子,有可能很多人这样用:val rdd1 = ... // 读取hdfs数据,加载成RDDrdd1.cacheval rdd2 = rdd1.map(...)val rdd3 = rdd1.filter(...)rdd1.unpersistrdd2.take(10).foreach(println)rdd3.take(10).foreach(println) 上面代原创 2020-08-06 22:19:45 · 8116 阅读 · 5 评论 -
Spark -- 一次Task长时间卡住不动,一直Running的问题解决
向导现象排查现象 spark提交任务后,某一个Stage卡住,通过spark界面看到,executor运行正常,卡住的Stage的task已经分配至executor,但task 一直在running并且数据量不大,task不结束,同时log中也无异常报出。20/07/27 07:40:13 INFO CoarseGrainedExecutorBackend: Started daemon with process name: 15841@ip-10-3-1-141.ec2.internal20原创 2020-07-28 21:45:22 · 12037 阅读 · 0 评论 -
Spark -- DataFrame按指定分隔符读取和写入文件
向导按指定分隔符读取文件jsonparquetjdbccsvtext自定义分隔符按指定分隔符写入文件jsonparquetjdbccsvtext自定义分隔符按指定分隔符读取文件 SparkSession读取时可以指定format,format支持:json, parquet, jdbc, orc, libsvm, csv, text这几种格式。jsonspark.read.json(inputFile1)//或者spark.read.format("json").load(inputFile1原创 2020-07-22 20:24:33 · 17785 阅读 · 4 评论 -
Spark -- 优化配置
向导重复上传Jar包问题开启推测执行重复上传Jar包问题 提交任务时,提示 WARN Client: Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME. 解决:上传spark环境的jar包到hdfs hdfs dfs -mkdir /spark/jars hdfs dfs -put /opt/module/spark-2.原创 2020-07-17 10:18:16 · 256 阅读 · 0 评论 -
Spark -- 配置HistoryServer并通过Yarn跳转和日志收集
向导配置yarn-site.xml配置spark-defaults.conf配置spark-env.sh测试配置yarn-site.xml 修改yarn-site.xml,增加如下配置,并分发重启yarn<!-- 日志聚集功能使能 --><property> <name>yarn.log-aggregation-enable</name> <value>true</value></property>原创 2020-07-16 23:15:53 · 2004 阅读 · 1 评论 -
Spark -- RDD写入HBase示例
向导POM示例说明POM<properties> <scala.version>2.11</scala.version> <spark.version>2.2.0</spark.version> <scope>complie</scope><!-- <scope>provided</scope>--> </p原创 2020-07-15 17:02:47 · 704 阅读 · 0 评论 -
Spark -- Spark的smote算法,非平衡数据处理示例
向导介绍代码github参考代码修改后代码结果根据我司需求的一个完整代码测试数据完整代码结果介绍 相关的理论,和代码可以参考:https://www.cnblogs.com/little-horse/p/11241168.html,这个参考代码我看了感觉有点偏老和偏复杂,于是找了另外一个版本。 spark的issues:https://issues.apache.org/jira/bro...原创 2020-03-26 16:47:22 · 1706 阅读 · 1 评论 -
SparkML -- LightGBM On Spark 导出pmml示例
向导MAVEN测试数据代码示例,以二分类为例结果MAVEN<dependency> <groupId>org.jpmml</groupId> <artifactId>jpmml-sparkml</artifactId> <version>1.5.0</version><!-- ...原创 2020-03-23 15:17:04 · 1013 阅读 · 1 评论 -
SparkML -- LightGBM On Spark 重要性LightGBMRanker示例
向导MAVEN测试数据代码示例结果MAVEN<dependency> <groupId>com.microsoft.ml.spark</groupId> <artifactId>mmlspark_2.11</artifactId> <version>0.18.0</version>...原创 2020-03-23 15:10:25 · 2016 阅读 · 4 评论 -
SparkML -- LightGBM On Spark 回归LightGBMRegressor示例
向导MAVEN测试数据代码示例结果MAVEN<dependency> <groupId>com.microsoft.ml.spark</groupId> <artifactId>mmlspark_2.11</artifactId> <version>0.18.0</version>...原创 2020-03-23 15:05:54 · 1601 阅读 · 3 评论 -
SparkML -- LightGBM On Spark 二分类LightGBMClassifier示例
向导MAVEN测试数据代码示例结果MAVEN<dependency> <groupId>com.microsoft.ml.spark</groupId> <artifactId>mmlspark_2.11</artifactId> <version>0.18.0</version>...原创 2020-03-23 15:03:35 · 2856 阅读 · 14 评论 -
SparkML -- LightGBM On Spark
向导介绍MML介绍 LightGBM是使用基于树的学习算法的梯度增强框架。它被设计为分布式且高效的,具有以下优点:训练速度更快,效率更高。降低内存使用率。更好的准确性。支持并行和GPU学习。能够处理大规模数据 LightGBM比XGBoost快将近10倍,内存占用率大约为XGBoost的1/6,并且准确率也有提升。官网地址:https://lightgbm.readthed...原创 2020-03-23 14:32:08 · 2452 阅读 · 0 评论 -
Spark -- 对DataFrame增加一列索引列(自增id列)
向导Spark DataFrame 添加自增id利用RDD的 zipWithIndex算子使用SparkSQL的functionSpark DataFrame 添加自增id 在用Spark 处理数据的时候,经常需要给全量数据增加一列自增ID序号,在存入数据库的时候,自增ID也常常是一个很关键的要素。在使用mmlspark的LightGBMRanker时也需要指定一列int/long类型的id...原创 2020-03-17 15:44:24 · 6146 阅读 · 1 评论 -
Spark -- OneHotEncoder,Spark的实现
由于业务需求,需要对多离散列进行OneHotEncoder编码,并扩展为N列,比如有一列性别sex列,只有两种情况:男male,女female,则将这一列横向扩展为两列:sex_male,sex_female,并追加到原数据中,如果某一列特征项多于设定的最大特征,比如100,则不对该列编码。首先是获取需要转换的离散列 val disColsList: List[String] = c...原创 2019-07-24 13:17:40 · 2679 阅读 · 2 评论 -
Spark -- 将Vector列横向扩展为多列
在使用OneHotEncoder时,对编码后的结果,Spark都追加在了一列Vector列,而我们的需求是要把扩展的这些列横向展开为多维度,而不是在一个矩阵列里。 我们的思路是将vector列通过自定义udf转化为array列,再通过zipWithIndex操作获取array下标横向扩展,下面是代码://一次性转换所有向量列 val vecToArrExprs: Array[Co...原创 2019-07-24 13:25:48 · 847 阅读 · 0 评论 -
Spark -- 计算各列的特征数量
多于计算一列中有多少特征,这个就直接distinct再count一下就出来了,但是对于指定的多列进行操作,如果使用循环操作,那效率,简直了。。。对于这么一种情况,我们可以使用spark的approx_count_distinct函数来操作。val df = Seq((1,3,4),(1,2,3),(2,3,4),(2,3,5)).toDF("col1","col2","col3")val...原创 2019-07-24 14:05:29 · 1309 阅读 · 0 评论 -
Spark -- 模型的导入和导出
通过SparkML训练的各种模型,通过Pipeline训练的为PipelineModel,我们可以将此模型写出为pmml文件(跨平台)或者写入hdfs(spark可以重新加载)。写入HDFS介绍 我们项目需要将Spark训练的模型保存至HDFS,待需要时再重新加载回来做后续的模型预测和评估的流程。因为Spark2.0后我们都是用Pipeline去训练模型的,我们以PipelineMod...原创 2019-07-25 13:59:33 · 6856 阅读 · 9 评论 -
Spark -- LabelEncoder,使用StringIndexer对多列编码
由于业务需求,需要对多列进行LabelEncoder编码,SparkML中是通过StringIndexer来实现LabelEncoder的,而StringIndexer是对单列操作的,而如果循环对每列进行编码,不符合Spark的设计,效率是十分低下的,对于这样的需求,我们使用Pipeline来解决这个问题。 通过map操作为每一组创建StringIndexer特征,然后通过pipelin...原创 2019-07-24 12:58:39 · 3793 阅读 · 2 评论