【问题标题】:How to split the values in a map in Scala?如何在Scala中拆分地图中的值?
【发布时间】:2017-05-05 14:08:33
【问题描述】:

我有一张地图,其中的值来自数据库中的多个不同列。这些值之间有下划线。例如,

newMap("A", 23_null_12_09asfA) 

这里,23 来自 A 列,null 来自 B 列,依此类推。现在,考虑一个有 20 个值的地图。我想知道如何将这些值拆分为数组或如何拆分和存储它们?

【问题讨论】:

  • “一次全部拆分并将其放入数据框中” - 你是什么意思?你能展示一个所需输出的例子吗?如果整个集合只有 20 条记录,那么使用 DataFrames 的目的是什么,DataFrames 对于分布式处理大型集合很有用,并且只会为小型集合创建不必要的开销。
  • 整个集合有超过 50,000 条记录,但我以 20 条为例。
  • 我会说得更清楚。我有一个像 23_null_23dA 这样的值。我想拆分这些值,存储它们,并想用原始值进行检查。
  • edit您的帖子包含这些详细信息和所需输出的示例

标签: scala apache-spark hashmap linkedhashmap


【解决方案1】:
val baseRDD=sc.parallelize(List(("john","1_abc_2"),("jack","3_xyz_4")))
val sRDD = baseRDD.map(x=> x._2.split("_"))
val resultDF=sRDD.toDF
resultDF.show

|[1, abc, 2]|
|[3, xyz, 4]|

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-29
    • 1970-01-01
    • 2014-04-01
    • 1970-01-01
    • 2017-06-06
    • 1970-01-01
    • 2020-08-28
    • 1970-01-01
    相关资源
    最近更新 更多