如何同时使用 Scala 格式和替换插值?
How to use Scala format and substitution interpolation together?
我是 scala 和 spark 的新手,有一个要求我想在单个 println 语句中同时使用格式和替换。
代码如下:
val results = minTempRdd.collect()
for(result <- results.sorted){
val station = result._1
val temp = result._2
println(f" StId $station Temp $temp%.2f F")
}
其中结果是一个具有结构 (stationId, Temperature) 的 RDD。
现在我想将这段代码转换成一个衬里。我尝试了以下代码:
val results = minTempRdd.collect()
results.foreach(x => println(" stId "+x._1+" temp = "+x._2))
它工作正常,但我无法在此处格式化元组中的第二个值。
有什么建议,我们如何才能做到这一点?
第一种方式是在插值中使用花括号,它允许传递任意表达式而不是变量:
println(f" StId ${result._1} Temp ${result._2}%.2fF")
第二种方式是解包元组:
for ((station, temp) <- results.sorted)
println(f" StId $station Temp $temp%.2fF")
或者:
results.sorted.foreach { case (station, temp) =>
println(" stId "+x._1+" temp = "+x._2)
}
我是 scala 和 spark 的新手,有一个要求我想在单个 println 语句中同时使用格式和替换。
代码如下:
val results = minTempRdd.collect()
for(result <- results.sorted){
val station = result._1
val temp = result._2
println(f" StId $station Temp $temp%.2f F")
}
其中结果是一个具有结构 (stationId, Temperature) 的 RDD。
现在我想将这段代码转换成一个衬里。我尝试了以下代码:
val results = minTempRdd.collect()
results.foreach(x => println(" stId "+x._1+" temp = "+x._2))
它工作正常,但我无法在此处格式化元组中的第二个值。
有什么建议,我们如何才能做到这一点?
第一种方式是在插值中使用花括号,它允许传递任意表达式而不是变量:
println(f" StId ${result._1} Temp ${result._2}%.2fF")
第二种方式是解包元组:
for ((station, temp) <- results.sorted)
println(f" StId $station Temp $temp%.2fF")
或者:
results.sorted.foreach { case (station, temp) =>
println(" stId "+x._1+" temp = "+x._2)
}