如何从Some(WrappedArray(map))中获取map的值?

如何从Some(WrappedArray(map))中获取map的值?
我在学习使用Griffin的数据质量模块,想从以下数据获取出non_unique = 1这样的值,需要如何操作?

Some(
  WrappedArray(
    Map(metric_name -> total, metric_value -> 50), 
    Map(metric_name -> duplicate, metric_value -> 1), 
    Map(metric_name -> unique, metric_value -> 48), 
    Map(metric_name -> non_unique, metric_value -> 1), 
    Map(metric_name -> distinct, metric_value -> 49)
  )
)

代码如下:

img

回答不易,求求您点赞采纳哦

你可以像这样获取map的值:

首先,你需要将上面的数据转换成一个数组,然后使用数组索引访问数组中的每个map。例如,可以使用数组索引0访问数组中的第一个map,数组索引1访问数组中的第二个map,以此类推。

val maps = wrappedArray.toArray
val firstMap = maps(0)
val secondMap = maps(1)

然后,你可以使用map的get方法获取特定的值。例如,可以使用get("metric_name")获取map中"metric_name"键对应的值。

val metricName = firstMap.get("metric_name")
val metricValue = firstMap.get("metric_value")

如果你想获取non_unique = 1的值,则可以使用以下代码:

val nonUniqueMap = maps.find(map => map.get("metric_name") == Some("non_unique"))
val nonUniqueValue = nonUniqueMap.flatMap(_.get("metric_value"))

最后,如果你想将non_unique值转换为整数,则可以使用以下代码:

val nonUniqueInt = nonUniqueValue.map(_.toInt)

望采纳!!!点击回答右侧采纳即可!!
你可以使用以下代码来从 Some(WrappedArray(map)) 中获取 map 的值:

val someWrappedArrayMap = Some(WrappedArray(
Map("metric_name" -> "total", "metric_value" -> 50),
Map("metric_name" -> "duplicate", "metric_value" -> 1),
Map("metric_name" -> "unique", "metric_value" -> 48),
Map("metric_name" -> "non_unique", "metric_value" -> 1),
Map("metric_name" -> "distinct", "metric_value" -> 49)
))

// 获取包含 non_unique 的 Map
val nonUniqueMap = someWrappedArrayMap.get.find(_("metric_name") == "non_unique")

// 输出 non_unique 的值
println(nonUniqueMap.get("metric_value")) // 输出:1

请注意,在使用 get 方法获取 WrappedArray 之前,你需要先判断 Some 中的值是否为空,否则你的代码可能会抛出异常。

可以使用如下步骤来从Some(WrappedArray(map))中获取map的值:

调用metricToInvestigate.get获取WrappedArray。
对于返回的WrappedArray,使用find方法来查找具有指定metric_name的map。
使用map的metric_value字段来获取值。
例如,若要获取具有metric_name为non_unique的map的metric_value值,可以使用以下代码:

val wrappedArray = metricToInvestigate.get
val map = wrappedArray.find(m => m("metric_name") == "non_unique")
val value = map.get("metric_value")

请注意,上述代码假设所有变量都已声明为正确的类型。