2016-11-15 1 views
0

나는 스파크와 스케이라를 시작하는 초보자입니다. bash 스크립트에서 spark 코드를 실행하고 싶었습니다. 나는 다음과 같은 코드를 작성했다.Bash 스크립트에서 Apache Spark (스칼라) 코드를 실행하십시오.

스칼라 코드는 다음과 같이 별도의 .scala 파일로 작성되었습니다.

스칼라 코드 :

import org.apache.spark.SparkContext 
import org.apache.spark.SparkContext._ 
import org.apache.spark.SparkConf 

object SimpleApp { 
    def main(args: Array[String]) { 
    val conf = new SparkConf().setAppName("Simple Application") 
    val sc = new SparkContext(conf) 
    println("x="+args(0),"y="+args(1)) 
    } 
} 

이 아파치 - 스파크/스칼라 코드를 호출하는 bash는 스크립트입니다.

배쉬 코드

#!/usr/bin/env bash 
Absize=File_size1 
AdBsize=File_size2 
for i in `seq 2 $ABsize` 
do 
    for j in `seq 2 $ADsize` 
    do 
     Abi=`sed -n ""$i"p" < File_Path1` 
     Adj=`sed -n ""$j"p" < File_Path2` 
     scala SimpleApp.scala $Abi $adj 
    done 
done 

는 그러나 나는 다음과 같은 오류를 얻을.

오류 :

error:object apache is not a member of package org 
import org.apache.spark.SparkContext 
     ^
error: object apache is not a member of package org 
import org.apache.spark.SparkContext._ 
     ^
error: object apache is not a member of package org 
import org.apache.spark.SparkConf 
     ^
error: not found:type SparkConf 
val conf = new SparkConf().setAppName("Simple Application")   ^
error: not found:type SparkContext 

위의 코드는 스칼라 파일이 어떤 스파크 기능 (즉, 순수 스칼라 파일)없이 작성하면 완벽하게 작동하지만, 아파치 - 스파크 수입이있는 경우 실패합니다.

bash 스크립트에서 이것을 실행하고 실행하는 좋은 방법은 무엇입니까? 코드를 실행하기 위해 spark shell을 호출해야합니까?

+3

시도로 말했다 실행할 "*의 .jar"YourFile.scala – FaigB

+0

나는 다음과 같은 명령을 사용하여 scala -classpath simple-project_2.11-1.0.jar SimpleApp.scala $ Abi $ adj 하지만 여전히 같은 오류가 있습니다. @FaigB – Aroon

+1

$ spark_home/lib/spark-core_2의 classpath jar에서 로컬로 스파크를 사용하는 경우. 10- {version} .jar 또는 https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.10에서 다운로드하고 classpath를 입력하십시오. – FaigB

답변

1

환경 변수로 스파크를 설정하고 @puhlen 스칼라 -classpath 같은 클래스 경로에 스파크 코어 의존성을 제공하기 위해 spark-submit -class SimpleApp simple-project_2.11-1.0.jar $Abi $adj

관련 문제