关键词不能为空

unionall「unionall可以用什么替换」

作者:admin
来源:http://www.sdzsb8.cn/zsxx/95066.html
日期:2023-04-04 23:20
评论:0
阅读 86
工作中,遇到同事之前写的oracle语句中有一个union all,并且很多地方都用到了。 便在网上查了一下用法,以下是自己的理解。 union (联合)将两个或者多个结果集合...
Spark的unionAll我可能用错了!

SparkSql要符合sql标准,在两个表作union的时候,字段的顺序需要一一对应,否则结果会错误。同样spark sql也要遵守。两个parquet作union的时候字段一定要对应上。否则最后结果会是错误的。

下面两个例子:

1.两个parquet的字段顺序一致

val conf = new SparkConf().setAppName("UDAF").setMaster("local")

val idtype = "idfa:imei"

val sc = new SparkContext(conf)

sc.setLogLevel("ERROR")

val sqlContext = new SQLContext(sc)

import org.apache.spark.sql.functions._

import sqlContext.implicits._

val names = Array((1L,"peter","peter",""),(2L,"Leo","Leo",""),

(3L,"Marry","","Marry"), (4L,"Jack","","Jack"),

(5L,"Tom","Tom",""), (6L,"id1","id1",""),

(5L,"Tom","Tom",""), (2L,"Leo","","Leo"),

(2L,"Leo","Leo",""))

val numsDF = sc.parallelize(names, 1).toDF("offset","mcId","idfa","imei")

val names2 = Array((11L,"peter2","peter2",""),(12L,"Leo2","Leo2",""))

val numsDF2 = sc.parallelize(names2, 1).toDF("offset","mcId","idfa","imei")

numsDF2.show(20,false)

numsDF.unionAll(numsDF2).show(20,false)

+------+------+------+----+

offsetmcId idfa imei

+------+------+------+----+

11 peter2peter2

12 Leo2 Leo2

+------+------+------+----+

+------+------+------+-----+

offsetmcId idfa imei

+------+------+------+-----+

1 peter peter

2 Leo Leo

3 Marry Marry

4 Jack Jack

5 Tom Tom

6 id1 id1

5 Tom Tom

2 Leo Leo

2 Leo Leo

11 peter2peter2

12 Leo2 Leo2

+------+------+------+-----+

2.两个parquet字段的顺序

val names = Array((1L,"peter","peter",""),(2L,"Leo","Leo",""),

(3L,"Marry","","Marry"), (4L,"Jack","","Jack"),

(5L,"Tom","Tom",""), (6L,"id1","id1",""),

(5L,"Tom","Tom",""), (2L,"Leo","","Leo"),

(2L,"Leo","Leo",""))

val numsDF = sc.parallelize(names, 1).toDF("offset","mcId","idfa","imei")

val names2 = Array((10L,"peter2","","peter2"),(11L,"Leo2","","Leo2"))

val numsDF2 = sc.parallelize(names2, 1).toDF("offset","idfa","imei","mcId")

numsDF2.show(20,false)

numsDF.unionAll(numsDF2).show(20,false)

输出:

+------+------+----+------+

offsetidfa imeimcId

+------+------+----+------+

10 peter2 peter2

11 Leo2 Leo2

+------+------+----+------+

发生错误的地方在下面。

+------+------+-----+------+

offsetmcId idfa imei

+------+------+-----+------+

1 peter peter

2 Leo Leo

3 Marry Marry

4 Jack Jack

5 Tom Tom

6 id1 id1

5 Tom Tom

2 Leo Leo

2 Leo Leo

10 peter2 peter2

11 Leo2 Leo2

+------+------+-----+------+


本文来自网络,不代表「专升本要什么条件_专升本要几年_成人高考专升本_山东专升本信息网」立场,转载请注明出处:http://www.sdzsb8.cn/zsxx/95066.html

unionall「unionall可以用什么替换」的相关文章

  • 戏剧影视表演「戏剧影视表演学什么」

    戏剧影视表演「戏剧影视表演学什么」:戏剧影视表演专业隶属于四川文化传媒学院传媒艺术学院艺术教育与表演系。戏剧影视表演培养理想信念坚定,声、台、形、表全面发展,具有一定的科学文化...2022年5月,学校开展“喜迎

    招生学校
  • 湖南高考录取查询「湖南高考官网录取查询入口」

    湖南高考录取查询「湖南高考官网录取查询入口」:2017年湖南高考录取时间:7月8日-8月20日。 湖南省教育考试院公布2017年全省普通高考录取信息查询方式和渠道 根据高考工作进展情况,今年高考成绩及录取信息发布...来源:人民网湖南省

    招生学校
  • 浙江高考状元2018「浙江高考状元2018年前十名」

    浙江高考状元2018「浙江高考状元2018年前十名」:浙江高考状元2018年,浙江历年高考状元浙江高考状元2018年,浙江历年高考状元2015浙江文科高考状元:严丹华745分昨晚,随着高考成绩放榜,今年高考文理科的高分究竟...【编者按】【浙江学霸

    招生学校
  • 事业单位专业知识「事业单位专业知识一般考什么」

    事业单位专业知识「事业单位专业知识一般考什么」:相信很多人都想知道卫生事业单位考试专业知识都考哪些? 针对此问题,医学教育网小编为您汇总整理如下: 卫生事业单位考试专业知识根据不同岗位专业知识考察不同内...近期到了事业单

    招生学校
  • including「including和included的区别」

    including「including和included的区别」:included和including的区别 included是动词include的过去式及过去分词,意为“包括;(使)成为……的一部分;允许(某人)加入活动”,作形容词有“包括在内的”意思。...高中...

    招生学校
  • 医学考试网报名入口「国家医学考试网登录入口」

    医学考试网报名入口「国家医学考试网登录入口」:摘要 2023年临床执业医师考试报名入口为国家医学考试网(http://www.nmec.org.cn/),报名通过网址:http://www2.nmec.org.cn/wangbao/nme/sp/...

    招生学校
  • 山海关在哪个省「山海关一日游最佳路线是什么」

    山海关在哪个省「山海关一日游最佳路线是什么」:山海关一日游最佳路线是:1、晨游“天下第一关”之山海关景区看日出,上午游角山景区和燕塞湖景区,下午游乐岛海洋王国;2、晨游“天下第一关”看日出,上...(中华传统,弘扬文化)

    招生学校
  • used「used的四种用法」

    used「used的四种用法」:used的用法简单介绍 used的用法有哪些 1、used to do sth,意为过去常常做某事,现在已经不再做了。 例句:I used to play football after school....

    招生学校
  • 初级会计师证「初级会计必背5500题」

    初级会计师证「初级会计必背5500题」:初级会计必背5500题 初级会计基础知识必背100题 本文给大家整理了初级会计基础知识必背100题,仅供参考。 1、什么是会计? 答:会计是以货币为主要计量单位,...2021年的初级会计考试

    招生学校
网站公告