首页 > 解决方案 > Spark RDD双重比较错误:值>不是(Double,Double)的成员

问题描述

我想在pairthree中,(a,(b,c))只过滤c> 100

pairthree.take(3) 

res8: Array[(Double, (Double, Double))] = Array((44966.0,(6.5,2.0)), (5015.0,(879.0,248.0)), (47202.0,(32.0,8.0)))

val pairhundred =pairthree.filter { case(k, v) => v > 100.0 }.take(3)

command-173749889538375:2:错误:值 > 不是 (Double, Double) val pairhundred =pairthree.filter { case(k, v) => v > 100.0 }.take(3) 的成员

我不明白为什么会发生这个错误......

标签: scalaapache-sparkrdd

解决方案


v是类型Tuple。试试下面的代码。

检查元组中的first参数> 100

val pairhundred =pairthree.filter { case(k, v) => v._1 > 100.0 }.take(3)

检查元组中的second参数> 100

val pairhundred =pairthree.filter { case(k, v) => v._2 > 100.0 }.take(3)

检查元组中的both参数> 100

val pairhundred =pairthree.filter { case(k, v) => (v._1 > 100.0 || v._2 > 100.0) }.take(3)

推荐阅读