如何比较两个表并用其他表中的值替换空值

拉特里

我正在做一些作业,其中我们有两个具有相同/不同列的表。如果 的记录table A有一些列值,null那么它必须更新为值 in table B,反之亦然。

table A

id | code | type
1  | null | A
2  | null | null
3  | 123  | C

table B

id | code | type
1  | 456 | A
2  | 789 | A1
3  | null  | C

到目前为止我所做的工作

Dataset<Row> df1 = spark.read().format("csv").option("header", "true").load("C:\\Users\\System2\\Videos\\1199_data\\d1_1.csv");
    Dataset<Row> df2 = spark.read().format("csv").option("header", "true").load("C:\\Users\\System2\\Videos\\1199_data\\d2_1.csv");



df1
    .as("a").join(df2.as("b"))
    .where("a.id== b.id")
    .withColumn("a.code", 
             functions.when(
                     df1.col("code").isNull(),


                     df2.col("code")  )

).show();

所需输出

table C

id | code | type
1  | 456 | A
2  | 789 | A1
3  | 123  | C
米歇尔·勒梅

你可以使用coalesce功能吗?

df1.join(df2, "id")
   .select(df1("id"), 
           coalesce(df1("code"), 
           df2("code")).as("code"), 
           coalesce(df1("type"), 
           df2("type")).as("type"))

和输出:

+---+----+----+
| id|code|type|
+---+----+----+
|  1| 456|   A|
|  2| 789|  A1|
|  3| 123|   C|
+---+----+----+

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

合并两个表,包括在其他表中找不到的行,替换列中的值

来自分类Dev

如果其他两个表中的值匹配,则更新表中的值

来自分类Dev

两个表获取其他表中具有共同值或没有值的值

来自分类Dev

比较两个表值

来自分类Dev

比较mysql中两个表的最低值

来自分类Dev

比较两个表中的值计数

来自分类Dev

如何比较两个单独表中两列的值?

来自分类Dev

连接两个值以获取其他表中的描述-SQL

来自分类Dev

如何在VBA中的不同工作表中比较两个值?

来自分类Dev

如何在两个不同的表中比较/匹配SQL Server中的值

来自分类Dev

如何选择两个表进行比较并在PHP Mysql中获得单个列值

来自分类Dev

如何比较两个变量的值,这些变量的值是在 JavaScript 中映射其他变量的结果?

来自分类Dev

获取由同一表中的其他两个列值确定的列值的总和

来自分类Dev

比较两个表中两个值的最快方法

来自分类Dev

比较两个数组,并用第三个数组中的值替换重复项

来自分类Dev

根据其他两个矩阵的值替换矩阵中的值

来自分类Dev

相对于其他两个列值替换列中的值

来自分类Dev

用其他表中的值替换选择值

来自分类Dev

如何比较两个结构相似的表,仅在SQL Server中返回列名和不同值的值?

来自分类Dev

如何从存储库中获取一个值,该值与表的两个字段进行比较

来自分类Dev

从两个表中删除值

来自分类Dev

如何按表中的两个相关值排序

来自分类Dev

SQL:如何对不同表中的两个值求和

来自分类Dev

如何从两个不同的表中返回列值?

来自分类Dev

表列上的复杂联接具有引用其他两个表中的外键的值

来自分类Dev

Postgresql-连接两个表,结果中包含来自t2的值的其他列

来自分类Dev

表列上的复杂联接具有引用其他两个表中的外键的值

来自分类Dev

根据R中其他两个列的比较生成新的列值

来自分类Dev

根据df中其他两个列的比较设置列值

Related 相关文章

  1. 1

    合并两个表,包括在其他表中找不到的行,替换列中的值

  2. 2

    如果其他两个表中的值匹配,则更新表中的值

  3. 3

    两个表获取其他表中具有共同值或没有值的值

  4. 4

    比较两个表值

  5. 5

    比较mysql中两个表的最低值

  6. 6

    比较两个表中的值计数

  7. 7

    如何比较两个单独表中两列的值?

  8. 8

    连接两个值以获取其他表中的描述-SQL

  9. 9

    如何在VBA中的不同工作表中比较两个值?

  10. 10

    如何在两个不同的表中比较/匹配SQL Server中的值

  11. 11

    如何选择两个表进行比较并在PHP Mysql中获得单个列值

  12. 12

    如何比较两个变量的值,这些变量的值是在 JavaScript 中映射其他变量的结果?

  13. 13

    获取由同一表中的其他两个列值确定的列值的总和

  14. 14

    比较两个表中两个值的最快方法

  15. 15

    比较两个数组,并用第三个数组中的值替换重复项

  16. 16

    根据其他两个矩阵的值替换矩阵中的值

  17. 17

    相对于其他两个列值替换列中的值

  18. 18

    用其他表中的值替换选择值

  19. 19

    如何比较两个结构相似的表,仅在SQL Server中返回列名和不同值的值?

  20. 20

    如何从存储库中获取一个值,该值与表的两个字段进行比较

  21. 21

    从两个表中删除值

  22. 22

    如何按表中的两个相关值排序

  23. 23

    SQL:如何对不同表中的两个值求和

  24. 24

    如何从两个不同的表中返回列值?

  25. 25

    表列上的复杂联接具有引用其他两个表中的外键的值

  26. 26

    Postgresql-连接两个表,结果中包含来自t2的值的其他列

  27. 27

    表列上的复杂联接具有引用其他两个表中的外键的值

  28. 28

    根据R中其他两个列的比较生成新的列值

  29. 29

    根据df中其他两个列的比较设置列值

热门标签

归档