【踩坑】SparkSQL union/unionAll 函数的去重问题

【踩坑】SparkSQL union/unionAll 函数的去重问题

  • 测试数据
scala 复制代码
case class Employee(first_name:String)

val employeeDF1 = spark.createDataset(Seq( 
    Employee("Mary"), 
    Employee("Mandy"),
    Employee("Kurt")
))
val employeeDF2 = spark.createDataset(Seq( 
    Employee("Mary"), 
    Employee("Julie"), 
    Employee("Mandy"),
    Employee("Julie"), 
    Employee("Kurt")
))
  • 无论是union还是unionall都不会去重
scala 复制代码
employeeDF1.union(employeeDF2).show
scala 复制代码
employeeDF1.unionAll(employeeDF2).show
  • 当通过spark.sql执行方式时,union可以去重
scala 复制代码
employeeDF1.createOrReplaceTempView("ds1")
employeeDF2.createOrReplaceTempView("ds2")
scala 复制代码
spark.sql("select * from ds1 union select * from ds2").show
scala 复制代码
spark.sql("select * from ds1 union all select * from ds2").show
相关推荐
MZWeiei4 小时前
Spark任务调度流程详解
大数据·分布式·spark·scala
бесплатно5 小时前
Spark-Core(RDD行动算子)
大数据·分布式·spark
SelectDB技术团队6 小时前
顺丰科技:从 Presto 到 Doris 湖仓构架升级,提速 3 倍,降本 48%
大数据·数据库·数据仓库·信息可视化·数据分析·doris·实时分析
一只专注api接口开发的技术猿7 小时前
1688 API 自动化采集实践:商品详情实时数据接口开发与优化
大数据·运维·数据库·自动化
静听山水10 小时前
Hive表JOIN性能问
大数据
完美世界的一天10 小时前
ES面试题系列「一」
大数据·elasticsearch·搜索引擎·面试·全文检索
Caron_xcb10 小时前
大数据基础——Ubuntu 安装
大数据·linux·ubuntu
好吃的肘子11 小时前
ElasticSearch入门详解
java·大数据·elasticsearch·搜索引擎·云原生
IvanCodes12 小时前
四、Hive DDL表定义、数据类型、SerDe 与分隔符核心
大数据·hive·hadoop
бесплатно13 小时前
Scala流程控制
开发语言·后端·scala