如何使用 scala 在 spark 中创建 SQLContext?
How to create SQLContext in spark using scala?
我正在使用 sbt 创建一个 SQLContext
的 Scala 程序。这是我的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 和 spark 编程还很陌生?
您需要 new
您的 SparkContext
应该可以解决问题
val conf = new SparkConf().setAppName("SparkJoins").setMaster("local")
val sc = new SparkContext(conf);
val sqlContext = new org.apache.spark.sql.SQLContext(sc);
我们可以简单地在 scala 中创建 SQLContext
scala> val sqlContext = new org.apache.spark.sql.SQLContext(sc);
对于 更新版本 的 Spark (2.0+),使用 SparkSession
:
val spark = SparkSession.builder.getOrCreate()
SparkSession
可以做 SQLContext
可以做的一切,但如果需要,可以按如下方式访问 SQLContext
,
val sqlContext = spark.sqlContext
如果您使用的是 scala shell 然后使用下面的语句
val sqlContext = spark.sqlContext
要读取 parquet 文件,请使用以下语句
val df = sqlContext.read.parquet("/path/to/folder/cotaning/arquet/files/")
我正在使用 sbt 创建一个 SQLContext
的 Scala 程序。这是我的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 和 spark 编程还很陌生?
您需要 new
您的 SparkContext
应该可以解决问题
val conf = new SparkConf().setAppName("SparkJoins").setMaster("local")
val sc = new SparkContext(conf);
val sqlContext = new org.apache.spark.sql.SQLContext(sc);
我们可以简单地在 scala 中创建 SQLContext
scala> val sqlContext = new org.apache.spark.sql.SQLContext(sc);
对于 更新版本 的 Spark (2.0+),使用 SparkSession
:
val spark = SparkSession.builder.getOrCreate()
SparkSession
可以做 SQLContext
可以做的一切,但如果需要,可以按如下方式访问 SQLContext
,
val sqlContext = spark.sqlContext
如果您使用的是 scala shell 然后使用下面的语句
val sqlContext = spark.sqlContext
要读取 parquet 文件,请使用以下语句
val df = sqlContext.read.parquet("/path/to/folder/cotaning/arquet/files/")