使用具有键->列名的Map在数据框中触发选择列

莱瓦

我正在使用Apache spark 2.3.0 cloudera4,但在根据地图中的值选择特定列时遇到问题。

我有这些输入,一个数据框:

+---+---+---+...+
| id| c1| c2| cN|
+---+---+---+...+
|  a|1.0|2.0|...|
|  a|3.0|4.0|...|
|  b|5.0|6.0|...|
|  c|7.0|8.0|...|
+---+---+---+---+

每个“ c”列都是双精度类型。

和地图:

Map("a" -> "c1", "b" -> "c2", "c" -> "c1")

我需要以下输出:

+---+---+
| id|  c|
+---+---+
|  a|1.0|
|  a|3.0|
|  b|6.0|
|  c|7.0|
+---+---+

从性能的角度来看,哪一种是获得输出的最佳方法?

现在,我遍历map键,选择带有where子句的col和id列,并与上一步进行合并(第一步是使用空的数据框进行)。我认为这种操作不利于我的过程性能。

ido堂

union此处无需使用只需与map变量一起迭代coalesce就足够了。这将根据id列和字典中的值选择正确的列

import spark.implicits._

val m = Map("a" -> "c1", "b" -> "c2", "c" -> "c1")
val c = coalesce(m.map{case (k,v) => when($"id" === k, col(v)).otherwise(lit(null))}.toSeq: _*)

df.select($"id", c)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用具有整数(索引)HashMap中作为键VS使用一个ArrayList

来自分类Dev

使用具有大量数据的 tempDB 的最佳选择

来自分类Dev

外键可以引用具有复合键(即两列的组合)的表吗?

来自分类Dev

外键可以引用具有复合键(即两列的组合)的表吗?

来自分类Dev

使用具有相同类名的jQuery选择div

来自分类Dev

Haskell使用map调用具有多个参数的函数

来自分类Dev

如何添加引用具有“有限长度”的2列主键的外键

来自分类Dev

如何添加引用具有“有限长度”的2列主键的外键

来自分类Dev

使用具有可变字段的数据解析JSON

来自分类Dev

如何使用具有不同变量名称的数据?

来自分类Dev

使用具有不同数据结构的 C 库

来自分类Dev

使用具有循环的游标更新列

来自分类Dev

使用具有按钮的HTML / CSS来排列列

来自分类Dev

如何从外部向量中使用具有不同值的数据框列(使用dplyr)

来自分类Dev

如何使用熊猫(不指定列名)在数据框中添加空列?

来自分类Dev

在数据框中使用列值作为列名

来自分类Dev

使用具有多索引的数据框创建条形图

来自分类Dev

使用具有Android界面的PHP从数据库中选择行

来自分类Dev

如何使用具有不同字典和字典列表的数据爆炸熊猫列

来自分类Dev

使用具有列映射的数据表更新/插入到SQL表

来自分类Dev

如何使用具有不同列长 ggplot2 的数据构建累积密度图?

来自分类Dev

在Yesod / Haskell中,如何使用具有可变插值功能的IO数据?

来自分类Dev

使用具有多个条件的其他表中的数据更新表?

来自分类Dev

使用具有月和年条件的存储过程从数据库中获取记录

来自分类Dev

使用has_many关系的计数进行选择-使用具有?

来自分类Dev

在带有DI的Play 2.4中,如何使用具有“安全”特征的服务类?

来自分类Dev

在数据框中查找具有相关列名和索引的最大值

来自分类Dev

使用部分列名称选择数据框中的多列

来自分类Dev

使用具有动态值的Powershell在CSV中创建新列

Related 相关文章

  1. 1

    使用具有整数(索引)HashMap中作为键VS使用一个ArrayList

  2. 2

    使用具有大量数据的 tempDB 的最佳选择

  3. 3

    外键可以引用具有复合键(即两列的组合)的表吗?

  4. 4

    外键可以引用具有复合键(即两列的组合)的表吗?

  5. 5

    使用具有相同类名的jQuery选择div

  6. 6

    Haskell使用map调用具有多个参数的函数

  7. 7

    如何添加引用具有“有限长度”的2列主键的外键

  8. 8

    如何添加引用具有“有限长度”的2列主键的外键

  9. 9

    使用具有可变字段的数据解析JSON

  10. 10

    如何使用具有不同变量名称的数据?

  11. 11

    使用具有不同数据结构的 C 库

  12. 12

    使用具有循环的游标更新列

  13. 13

    使用具有按钮的HTML / CSS来排列列

  14. 14

    如何从外部向量中使用具有不同值的数据框列(使用dplyr)

  15. 15

    如何使用熊猫(不指定列名)在数据框中添加空列?

  16. 16

    在数据框中使用列值作为列名

  17. 17

    使用具有多索引的数据框创建条形图

  18. 18

    使用具有Android界面的PHP从数据库中选择行

  19. 19

    如何使用具有不同字典和字典列表的数据爆炸熊猫列

  20. 20

    使用具有列映射的数据表更新/插入到SQL表

  21. 21

    如何使用具有不同列长 ggplot2 的数据构建累积密度图?

  22. 22

    在Yesod / Haskell中,如何使用具有可变插值功能的IO数据?

  23. 23

    使用具有多个条件的其他表中的数据更新表?

  24. 24

    使用具有月和年条件的存储过程从数据库中获取记录

  25. 25

    使用has_many关系的计数进行选择-使用具有?

  26. 26

    在带有DI的Play 2.4中,如何使用具有“安全”特征的服务类?

  27. 27

    在数据框中查找具有相关列名和索引的最大值

  28. 28

    使用部分列名称选择数据框中的多列

  29. 29

    使用具有动态值的Powershell在CSV中创建新列

热门标签

归档