【发布时间】:2015-07-03 01:10:58
【问题描述】:
这个演示运行正常。但是当我将它移到另一个类函数(我以前的项目)并调用该函数时,它编译失败。
object DFMain {
case class Person(name: String, age: Double, t:String)
def main (args: Array[String]): Unit = {
val sc = new SparkContext("local", "Scala Word Count")
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import sqlContext.implicits._
val bsonRDD = sc.parallelize(("foo",1,"female")::
("bar",2,"male")::
("baz",-1,"female")::Nil)
.map(tuple=>{
var bson = new BasicBSONObject()
bson.put("name","bfoo")
bson.put("value",0.1)
bson.put("t","female")
(null,bson)
})
val tDf = bsonRDD.map(_._2)
.map(f=>Person(f.get("name").toString,
f.get("value").toString.toDouble,
f.get("t").toString)).toDF()
tDf.limit(1).show()
}
}
'MySQLDao.insertIntoMySQL()' 编译错误
object MySQLDao {
private val sc= new SparkContext("local", "Scala Word Count")
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import sqlContext.implicits._
case class Person(name: String, age: Double, t:String)
def insertIntoMySQL(): Unit ={
val bsonRDD = sc.parallelize(("foo",1,"female")::
("bar",2,"male")::
("baz",-1,"female")::Nil)
.map(tuple=>{
val bson = new BasicBSONObject()
bson.put("name","bfoo")
bson.put("value",0.1)
bson.put("t","female")
(null,bson)
})
val tDf = bsonRDD.map(_._2).map( f=> Person(f.get("name").toString,
f.get("value").toString.toDouble,
f.get("t").toString)).toDF()
tDf.limit(1).show()
}
}
请问,当我调用 'MySQLDao.insertIntoMySQL()' 时会得到错误
value typedProductIterator 不是对象 scala.runtim.scala.scalaRuntTime 的成员
case class Person(name: String, age: Double, t:String)
【问题讨论】:
-
奇怪的错误。这是一个 Scala 编译器错误。它是在编译代码时出现还是在运行时出现?另外,尝试使示例独立,以便人们可以重现错误。例如,未定义 BasicBSONObject。
-
是的,这是编译器错误。对不起,我给你错误的快递。我创建了一个新项目,它只是做了正确的事情。但是,我仍然不知道为什么。
-
嗨,我正在使用 scala 做一个 spark 项目。但是我的scala很差。你能给我一些建议吗?
标签: scala apache-spark