【问题标题】:Spark RDD double compare error: value > is not a member of (Double, Double)Spark RDD双重比较错误:值>不是(Double,Double)的成员
【发布时间】:2021-02-26 20:52:35
【问题描述】:

我想要在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)

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

【问题讨论】:

  • v 是元组类型,您需要使用v._1 > 100.0v._2 > 100.0

标签: scala apache-spark rdd


【解决方案1】:

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多