基于键更改Map scala的值
chaage value of Map scala based in key
我有以下内容:
val dynamoItem = rowAsMap.mapValues {
v: Any => new AttributeValue().withS(v.toString)
}.asJava
我想更改 mapValues 函数并使其将适当的函数应用于基于键的值
所以如果密钥等于 "AER"
我希望它做:v: Any => new AttributeValue().withN(v.toString)
我想为 Key 的其他值设置
v: Any => new AttributeValue().withS(v.toString)
据我了解,您想转换 rowAsMap 值(即 Map() 值)。
val dynamoItem = rowAsMap.map { item =>
if (item._1 == "AER")
new AttributeValue().withN(item._2.toString)
else
new AttributeValue().withS(item._2.toString)
}
我会尽可能避免使用 x._n 符号来访问元组元素。这与上面提供的答案基本相同,但我发现它更具可读性。
val dynamoItem = rowAsMap.map {
case("AER", value) => "AER" -> new AttributeValue().withN(value.toString)
case (key, value) => key -> new AttributeValue().withS(value.toString)
}
注意 - 我假设您保留键并用 new AttributeValue().withN(value.toString)
或 new AttributeValue().withS(value.toString)
替换值
我有以下内容:
val dynamoItem = rowAsMap.mapValues {
v: Any => new AttributeValue().withS(v.toString)
}.asJava
我想更改 mapValues 函数并使其将适当的函数应用于基于键的值
所以如果密钥等于 "AER"
我希望它做:v: Any => new AttributeValue().withN(v.toString)
我想为 Key 的其他值设置
v: Any => new AttributeValue().withS(v.toString)
据我了解,您想转换 rowAsMap 值(即 Map() 值)。
val dynamoItem = rowAsMap.map { item =>
if (item._1 == "AER")
new AttributeValue().withN(item._2.toString)
else
new AttributeValue().withS(item._2.toString)
}
我会尽可能避免使用 x._n 符号来访问元组元素。这与上面提供的答案基本相同,但我发现它更具可读性。
val dynamoItem = rowAsMap.map {
case("AER", value) => "AER" -> new AttributeValue().withN(value.toString)
case (key, value) => key -> new AttributeValue().withS(value.toString)
}
注意 - 我假设您保留键并用 new AttributeValue().withN(value.toString)
或 new AttributeValue().withS(value.toString)