Sbtを使用してScalaプログラムをSQLContext
に作成しています。これが私のbuild.sbtです。
name := "sampleScalaProject"
version := "1.0"
scalaVersion := "2.11.7"
//libraryDependencies += "org.Apache.spark" %% "spark-core" % "2.5.2"
libraryDependencies += "org.Apache.spark" % "spark-core_2.11" % "1.5.2"
libraryDependencies += "org.Apache.kafka" % "kafka_2.11" % "0.8.2.2"
libraryDependencies += "org.Apache.spark" % "spark-streaming_2.11" % "1.5.2"
libraryDependencies += "org.Apache.spark" % "spark-sql_2.11" % "1.5.2"
libraryDependencies += "org.Apache.hadoop" % "hadoop-common" % "2.6.0"
そしてこれはテストプログラムです:
import org.Apache.spark.SparkContext
import org.Apache.spark.sql.SQLContext
object SqlContextSparkScala {
def main (args: Array[String]) {
val sc = SparkContext
val sqlcontext = new SQLContext(sc)
}
}
以下のエラーが発生します:
Error:(8, 26) overloaded method constructor SQLContext with alternatives:
(sparkContext: org.Apache.spark.api.Java.JavaSparkContext)org.Apache.spark.sql.SQLContext <and>
(sparkContext: org.Apache.spark.SparkContext)org.Apache.spark.sql.SQLContext
cannot be applied to (org.Apache.spark.SparkContext.type)
val sqlcontexttest = new SQLContext(sc)
私はscala and sparkプログラミングに慣れていないので、誰かが問題を教えてくれませんか?
あなたはnew
あなたのSparkContext
をする必要があり、それはそれを解決するはずです
新しいバージョン of Spark(2.0+)の場合、SparkSession
を使用します。
val spark = SparkSession.builder.getOrCreate()
SparkSession
はSQLContext
が実行できるすべてのことを実行できますが、必要に応じてSQLContext
には次のようにアクセスできます。
val sqlContext = spark.sqlContext
単純に、scalaでSQLContextを作成できます
scala> val sqlContext = new org.Apache.spark.sql.SQLContext(sc);