web-dev-qa-db-ja.com

Scalaを使用してsparkでSQLContextを作成する方法は?

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プログラミングに慣れていないので、誰かが問題を教えてくれませんか?

6
Aman

あなたはnewあなたのSparkContextをする必要があり、それはそれを解決するはずです

5
Justin Pihony

新しいバージョン of Spark(2.0+)の場合、SparkSessionを使用します。

val spark = SparkSession.builder.getOrCreate()

SparkSessionSQLContextが実行できるすべてのことを実行できますが、必要に応じてSQLContextには次のようにアクセスできます。

val sqlContext = spark.sqlContext

単純に、scalaでSQLContextを作成できます

scala> val sqlContext = new org.Apache.spark.sql.SQLContext(sc);    
3
Viraj.Hadoop