2

Spark プログラミング ガイドで提供されている例を実行しようとしています。 https://spark.apache.org/docs/1.1.0/sql-programming-guide.html

しかし、私はコンパイルエラーに直面しています。(私はScala初心者です)

以下は私のコードです:

import org.apache.spark.{SparkContext,SparkConf}
import org.apache.spark.sql._
import org.apache.spark.sql

object Temp {
    def main(args: Array[String]) {
        val sparkConf = new SparkConf().setMaster("local").setAppName("SPARK SQL example")
        val sc= new SparkContext(sparkConf)
        val sqlContext = new org.apache.spark.sql.SQLContext(sc)
        import sqlContext.createSchemaRDD
        case class Person(name: String, age: Int)
        val people = sc.textFile("examples/src/main/resources/people.txt").map(_.split(",")).map(p => Person(p(0), p(1).trim.toInt))
        people.registerTempTable("people")
        val teenagers = sqlContext.sql("SELECT name FROM people WHERE age >= 13 AND age <= 19")
        teenagers.map(t => "Name: " + t(0)).collect().foreach(println)
    }
}

No TypeTag available for Person行でコンパイルエラーに直面していますpeople.registerTempTable("people")

このエラーを解決するにはどうすればよいですか?

4

1 に答える 1

4

Person クラスが関数内で定義されているため、Scala コンパイラはクラスの TypeTag を作成しないため、失敗しています。ポールが提案したように、関数からトップレベルに移動できます。

この制限を緩和する JIRA があることを付け加えておきます: https://issues.apache.org/jira/browse/SPARK-4842

于 2014-12-16T02:43:11.450 に答える