Loong
R_记忆犹新
实现一切可能的可能
展开
-
Spark SQL 中数据类型为Map的注意事项
在使用SparkSQL进行处理数据时,将数据保存为Map,并读取出Map的数据数据列聚合操作后拼接为一个字符集合:BSV ANGLIA_1~BSV ANGLIA---_2SELECT MMSI, IMO, concat_ws("~",collect_set(concat_ws("_",ShipName,name_num))) as shipNum, max(time) as last_t...原创 2019-06-05 20:16:27 · 5820 阅读 · 0 评论 -
Spark DataFrame导入mysql入库添加自增主键id
Spark DataFrame 添加一个自增主键id 在使用SparkSQL处理数据的时候,经常需要给全量数据增加一列自增的ID序号,在存入数据库的时候,自增ID也常常是一个很关键的要素。在DataFrame的API中没有实现这一功能,所以只能通过其他方式实现,或者转成RDD再用RDD的zipWithIndex算子实现。下面介绍两种实现方式:方式一: 利用窗口函数// 加载数据val...原创 2019-06-06 17:31:28 · 3843 阅读 · 0 评论 -
Maven小问题
在使用Maven创建项目时,使用模块进行分类管理时,发现当删除一个子模块时,再对其父模块进行打包时,打包过程中没有任何错误,但是最终的jar包不会生成。经查询对比发现:在其是父模块时,pom.xml中配置如下:<artifactId>static_log</artifactId> <packaging>pom</packaging&g...原创 2019-06-19 09:52:42 · 178 阅读 · 0 评论 -
在使用Spark ml时, VectorAssembler使用null异常
SparkException: Values to assemble cannot be null代码为:val Array(trainingData, testData) = dataset.randomSplit(Array(0.7,0.3))val assembler = new VectorAssembler() .setInputCols(len_df.selec...原创 2019-07-02 18:39:59 · 2774 阅读 · 0 评论 -
Spark任务跑完将结果以邮件的方式进行发送
工作中,一般是晚上提交任务,第二天等结果,等跑完再走等问题阻碍着我们的步伐,现开发提交完任务就可以第一时间知道,并可以发送给领导,很方便以下代码为scala编写,主要应用于跑spark任务后的结果发送。开始需要:构建maven项目:添加依赖pom.xml: <!-- https://mvnrepository.com/artifact/com.typesafe.play/...原创 2019-06-27 19:47:45 · 2806 阅读 · 4 评论 -
使用SparkSQL时使用SQL语句中的COLLECT_SET和后期处理需要注意问题
在使用SparkSQL的SQL语句进行聚合后拼接时,需要使用CONCAT_WS进行多字段拼接,再使用COLLECT_SET进行收集,返回一个Array数组的集合。如: val imo_type_sql = """ |SELECT IMO, MMSI, COLLECT_SET(CONCAT_WS("~",ShipType, count)) as type_cou...原创 2019-06-28 16:35:20 · 5223 阅读 · 0 评论