【问题标题】:Scala - error: type not foundScala - 错误:找不到类型
【发布时间】:2016-08-09 21:31:12
【问题描述】:

我是 Scala 的新手,我遇到了一个我无法理解的错误。这是我的int 中的array :(从1 到100 的数字)

val rdd = sc.parallelize(1 to 100)

接下来我写了一个函数,它返回我的数组的 MAX 值:

rdd.reduce((x, y) => x > y ? x : y)

但我总是得到这个错误:

<console>:30: error: not found: type y
              rdd.reduce((x, y) => x > y ? x : y)
                                               ^

我真的不知道错误意味着什么,所以我找不到解决方案。但是如果我像这样使用我的函数,它就可以工作:

rdd.reduce((x, y) => if(x > y) x else y)

感谢您的回答!

【问题讨论】:

  • 什么是sc.parallelize?这是来自 Spark 的吗?

标签: scala types


【解决方案1】:

Scala 中没有? : 运算符,请改用if

rdd.reduce((x, y) => if (x > y) x else y)

或者使用max而不是自己构建它:

rdd.reduce((x, y) => x max y)

或者使用匿名函数的 _ 语法:

rdd.reduce(_ max _)

或者避免自己建立最大集合:

rdd.max

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-16
    相关资源
    最近更新 更多