2017-06-28 3 views
0

Redhat Linux環境でsbtを使って最初のspark2(scala)アプリケーションを開発しようとしています。以下は環境の詳細です。Sparkアプリケーションが「オブジェクトSparkSessionはパッケージのメンバーではありません」でコンパイルに失敗しますが、spark-coreは依存関係ですか?

CDH Version: 5.11.0 
Apache Spark2: 2.1.0.cloudera1 
Scala Version: 2.11.11 
Java Version: 1.7.0_101 

アプリケーションコード:

import org.apache.spark.sql 
import org.apache.spark.sql.SparkSession 
import org.apache.spark.sql.types._ 
import org.apache.spark.sql 

object MySample { 
def main(args: Array[String]) { 

    val warehouseLocation = "file:${system:user.dir}/spark-warehouse" 
    val spark = SparkSession 
     .builder() 
     .appName("FirstApplication") 
     .config("spark.sql.warehouse.dir", warehouseLocation) 
     .getOrCreate() 

    val schPer = new StructType(Array(
    new StructField("Column1",IntegerType,false), 
    new StructField("Column2",StringType,true), 
    new StructField("Column3",StringType,true), 
    new StructField("Column4",IntegerType,true) 
    )) 
val dfPeriod = spark.read.format("csv").option("header",false).schema(schPer).load("/prakash/periodFiles/") 
dfPeriod.write.format("csv").save("/prakash/output/dfPeriod") 
} 

}

SBTを使用してコンパイル時エラーの下に入手。

$ sbt 
[info] Loading project definition from /home/prakash/project 
[info] Set current project to my sample (in build file:/home/prakash/) 
> compile 
[info] Compiling 2 Scala sources to /home/prakash/target/scala-2.11/classes... 
[error] /home/prakash/src/main/scala/my_sample.scala:2: object SparkSession is not a member of package org.apache.spark.sql 
[error] import org.apache.spark.sql.SparkSession 
[error]  ^
[error] /home/prakash/src/main/scala/my_sample.scala:3: object types is not a member of package org.apache.spark.sql 
[error] import org.apache.spark.sql.types._ 
[error]       ^
[error] /home/prakash/src/main/scala/my_sample.scala:10: not found: value SparkSession 
[error]     val spark = SparkSession 
[error]       ^
[error] /home/prakash/src/main/scala/my_sample.scala:16: not found: type StructType 
[error]     val schPer = new StructType(Array(
[error]        ^
.. 
.. 
.. 
[error] 43 errors found 
[error] (compile:compileIncremental) Compilation failed 

以下は、私のプロジェクト用のsbt構成です。

name := "my sample" 
version := "1.0" 
scalaVersion := "2.11.8" 
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.1.0" 

答えて

2

SparkSessionは火花-SQLアーティファクトの一部であるので、あなたのビルド設定でこれを必要とする:

libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.1.0" 
関連する問題