首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scala型错配渗透

scala型错配渗透
EN

Stack Overflow用户
提问于 2016-12-08 09:59:54
回答 2查看 980关注 0票数 1

我试着让这个例子从这本关于地图匹配的公开书籍开始工作。我正在使用Scala2.10和Spark2.0.2。

不幸的是,语法和功能发生了变化。

代码语言:javascript
复制
case class NodeEntry(nodeId: Long, latitude: Double, longitude: Double, tags: Array[String])

val nodeDS = nodes.map{node => 
NodeEntry(node.getId, 
   node.getLatitude, 
   node.getLongitude, 
   node.getTags.map(_.getValue).toArray
)}.toDS.cache

我得到了错误“值映射不是java.util.Listorg.openstreetmap.osmosis.core.domain.v0_6.WayNode”的成员

"value toDS不是scala.collection.mutable.ArrayBufferNothing可能的原因:也许在‘value toDS’之前缺少分号?“

我试图将nodes.map更改为:

代码语言:javascript
复制
val nodeDS = nodes.map { node => 
  NodeEntry(node.getId, 
      node.getLatitude, 
      node.getLongitude, 
      node.getTags.toArray() 
  )}

但是,我得到了这个错误:类型不匹配;发现: ArrayObject必需: ArrayString注释: Object >:String,但是类数组在类型T中是不变的。您可能希望研究一个通配符类型,例如_ >:String。(补充劳工3.2.10)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-08 10:08:00

mapimport JavaConversions集合中不可用,以便使其可用import JavaConversions

代码语言:javascript
复制
import scala.collection.JavaConversions._

示例

Scala REPL

代码语言:javascript
复制
scala> val l = new java.util.ArrayList[String]()
l: java.util.ArrayList[String] = []

scala> l.add("scala")
res0: Boolean = true

scala> l.add("haskell")
res1: Boolean = true

scala> l.map(x => x.reverse)
<console>:13: error: value map is not a member of java.util.ArrayList[String]
       l.map(x => x.reverse)
     ^

scala> import scala.collection.JavaConversions._
import scala.collection.JavaConversions._

scala> l.map(x => x.reverse)
res3: scala.collection.mutable.Buffer[String] = ArrayBuffer(alacs, lleksah)

请注意,导入映射之后,java ArrayList上就可以使用了。

票数 0
EN

Stack Overflow用户

发布于 2016-12-08 11:43:55

啊,我明白了。在建议的导入之后,以下工作完成:

代码语言:javascript
复制
val nodeDS = nodes.map { node => 
  NodeEntry(node.getId, 
      node.getLatitude, 
      node.getLongitude, 
      node.getTags.map(_.getValue).toArray
  )}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41036564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档