1

私はIntellij IDEAコミュニティエディションを持っています。私は、IntellJ用のApache Sparkの設定について助けが必要です。私は私のbuild.sbt Intellijセットアップスカラーとスカラ

.. Scala..I使用crealyticsによってGAからデータを取得したい:

name := "scala-project-test" 

version := "1.0" 

scalaVersion := "2.11.8" 

libraryDependencies ++= Seq(
    "org.apache.spark" %% "spark-core" % "1.6.1", 
    "org.apache.spark" %% "spark-sql" % "1.6.1", 
    "com.crealytics" % "spark-google-analytics_2.11" % "0.8.1" 
) 

とanalytics.scala

import org.apache.spark.sql.SQLContext 

object analytics { 


    val sqlContext = new SQLContext(sc) 
    val df = sqlContext.read 
    .format("com.crealytics.google.analytics") 
    .option("serviceAccountId", "[email protected]") 
    .option("keyFileLocation", "/Users/userABC/IdeaProjects/scala-project-test/xxxx.p12") 
    .option("ids", "ga:xxxxxx") 
    .option("startDate", "7daysAgo") 
    .option("endDate", "yesterday") 
    .option("dimensions", "date,browser,city") 
    .option("queryIndividualDays", "true") 
    .load() 

    df.select("browser", "users").show() 
} 

私はそこに、オブジェクトAnalyticsをRUNエラー: が見つかりません:値sc

私はスパークの設定に関して問題があると思いますが、scはSparkContextですが、私はどこにいるのかわかりません。

ヒント

答えて

0

短い答え

val conf = createSparkConf 
    val sc = new SparkContext(conf) 
    val sqlContext = new SQLContext(sc) 

.....

一般的に、私はあなたが、これはそれが見えるものであるマスターのURLを設定する必要があり、構成ファイル内SparkContextFactory

object SparkContextFactory { 

    val conf = createSparkConf 
    val sc = new SparkContext(conf) 

    def createSparkSQLContext: SQLContext = { 
    val sc = new SparkContext(conf) 
    val sQLContext = new SQLContext(sc) 
    sQLContext 
    } 

    def stopSparkContext() = sc.stop() 

    private def createSparkConf: SparkConf = { 
    val conf = ConfigLoader.conf 

    val masterPath = conf.getString("spark.master.path") 

    new SparkConf() 
     .setMaster(masterPath).setAppName("SparkContext") 
     .set("spark.driver.allowMultipleContexts" , "true") 
    } 
} 

を使用ローカルボックスのようなもの

spark.master.path="local[*]" 

set("spark.driver.allowMultipleContexts" , "true") 

あなたがVMに引数を与えたいと思うかspark.master.path =のようなコンフィギュレーション・ファイルにない場合は、単に地元のテストのために、私はまた、この

val sqlc = SparkContextFactory.createSparkSQLContext 
+0

のように工場を使用しています"local [*]"、SparkConfを作成している間に設定を指定することもできます。 val conf = new SparkConf()。setAppName( "App Name")。setMaster( "local")。 – Nishan