当前位置: 首页 > 知识库问答 >
问题:

Spark-如何从平面地图创建具有选择性字段的地图

酆英达
2023-03-14

我在平面地图中有8个字段(字段1、字段2、…、字段8),我想在运行时创建一个地图对象。我想创建一个带有动态键和值元素的地图。

例如。我有像field1,field2,field3这样的关键元素和像field6,field7这样的值元素。以下代码片段工作正常。

val myMap = myFlatMap.map(line1 => line1 match {
      case (field1,field2,field3,field4,field5,field6,field7,field8) => {

        ((field1,field2,field3) -> ( field6, field7))
      }

但是,键和值元素是动态获取的(如命令行html" target="_blank">参数)。如果我在数据结构中拥有关键元素,如String或Seq()数组,我如何做类似的映射

输入:例如,myFlatMap 具有以下数据:(field1_row1,field2_row1,field3_row1,field4_row1,field5_row1,field6_row1,field7_row1,field8_row1) (field1_row2,field2_row2,field3_row2,field4_row2,field5_row2,field6_row2,field7_row2,field8_row2) (field1_row3,field2_row3,field3_row3,field4_row3,field5_row3,field6_row3,field7_row3,field8_row3)

输出:键、值对的映射如下。

(field1_row1,field2_row1,field3_row1)─

在上述示例中,输出映射的键为(字段1、字段2、字段3),值为(字段6、字段7)。并非每次运行作业都是如此。

在第二次运行中,我可能只需要映射(字段1,字段2)-

我有一个变量中的输入字段,keyFields=List(“field1”、“field3”和“field5”)。有没有一种优雅的方式来获得这些领域中的一些?

任何帮助将不胜感激。

共有1个答案

宣望
2023-03-14

你应该看看这个问题:有办法从列表中创建元组吗(无需代码生成)?

不过,我会听从dhg的建议。您真的应该尝试通过提前了解相关性来编写应用程序。

您还可以查看spark-sql和数据帧。您可以按任意数量键、任意数量的字段进行分组。

 类似资料:
  • 问题内容: 我没有找到这样的多图构造…当我想这样做时,我遍历了地图,并填充了多图。还有其他方法吗? 第一个结果是,但我希望 问题答案: 假设你有 那我相信这是最好的 或更佳,但更难阅读

  • 问题内容: 我有一张地图清单。 列表中的值例如是 最后,我想要一个Map>,就像 如何在Java中实现这一目标。 代码: 现在,基于与我想要的相同ID,此genericList是该列表的输入并来自此列表 基本上,要根据ID将响应归类为String,将具有相同ID的响应分组在列表中,然后创建一个以ID为键并以列表为值的新映射。 问题答案: 您可以使用Java 8进行以下操作: 这将打印: 整数:1

  • 我在网上看到了Dataframes教程https://databricks.com/blog/2015/02/17/introducing-dataframes-in-spark-for-large-scale-data-science.html这是用Python编写的。我正试图把它翻译成Scala。 它们有以下代码: 因此,我首先将数据从一个读入一个数据帧,然后我得到: 但我不知道: > 如何将

  • 问题内容: 拥有下一张原始地图: 在G1,G2和G3是不同年龄段的人群时,如何创建这样的新地图: 新密钥是每个组中的最大年龄。 我已经试过了: 但是编译器对我说:在这段代码中,“此表达式的目标类型必须是函数接口”: 任何帮助,将不胜感激。 问题答案: toMap使用和的功能。您在代码中正确地执行了此操作,但是对于,您却没有正确执行此操作,因此您需要包含以下函数: 注意 。 此外,由于您不使用地图键

  • 问题内容: 这是我的表: 我想按标题有效地获取标题。 此刻,我首先获得条目的,然后手动进行另一个查询。 还有其他更优雅的解决方案吗? 问题答案: A可能会有所帮助,并且如果不是出于性能原因,通常是对许多嵌套查询的更可取的解决方案。 在您的情况下,请尝试:

  • 我试图在Java创建的布局中创建一个地图(GoogleMap)。我不明白为什么在尝试从LinearLayout获取ID时会出现与imageView相关的错误。 这是我的代码: 这是我得到的日志: