Spark
qijingpei
BAT后端开发工程师。之前接触到的业务很杂,所以学习了很多方向的知识,目前专注于后端方向。
展开
-
Spark: org.apache.spark.sql.AnalysisException: Resolved attribute(s) ... missing from....
背景:Spark scala代码处理数据。 前言: 请先检查代码,是否遗漏了字段,也就是要解析的字段XXX不存在。如果真的漏了,补上即可,不需要再往下看了。 具体报错日志如下: ApplicationMaster: User class threw exception: org.apache.spark.sql.AnalysisException: Resolved attribute(s) team_id#51L missing from team_id#479L, … in operator !Join原创 2022-03-19 15:06:49 · 6342 阅读 · 0 评论 -
Spark使用 collect_list 将多行合并成一行,用于保存非group by的字段的值
目标: 想对某几个字段group by,但聚合以后,还想保留不是group by字段里的字段的数据,此时可以将这些数据组合类似于Java等语言中的list也就是列表或者说是数组,然后将这个列表,新建一个字段来存储。这样,group by之后,想要的非group by字段里的数据,也能保存下来了。 步骤: 将多个列组成一个struct(非必须,一般用在要保存多个列的值时) 使用group by聚合时,将struct组合成list(必需的。通过collect_list实现) val input: DataF转载 2021-05-03 22:16:07 · 3580 阅读 · 0 评论 -
Spark 实现 对mysql的insert or update if exist:有则更新,没有则插入 (ON DUPLICATE KEY)
Spark 实现 对mysql的insert or update:有则更新,没有则插入 废话不说,直接上代码: (因为是从已近上线的代码里造了个demo出来,线上代码已经在跑了,但这个demo没有测试,如果有遇到错误还请跟我说一下,我好改一下,但是整体思路是这样的。) import java.sql.{Connection, DriverManager, Statement} import java.util.Properties import org.apache.spark.sql.{DataFra原创 2021-05-02 11:28:36 · 1708 阅读 · 0 评论 -
Spark 按条件 读取 mysql 数据
一、Spark 读取 mysql 数据 网上Spark读取mysql数据的资料还是挺多的,这里贴一下我的代码: 新建1个Scala的”Object“ import org.apache.spark.sql.{DataFrame, SparkSession} object CsdnTest { def main(args: Array[String]): Unit = { val ss = SparkSession.builder .appName("Test") .原创 2021-05-02 11:08:02 · 1177 阅读 · 0 评论