2017-12-24 24 views
-1

을 사용 SparkContext 개체를 만들 수 없습니다 나는 MS 윈도우 7는 아파치 스파크 2.2 버전

처음에, 나는 스파크 1.6에서 스칼라를 사용하여 하나 개의 프로그램을 시도하고 괜찮 았는데 사용합니다. 나는 PARALLELIZE 방법 아래 실행하려고 그것은 나에게 하나의 오류를 줄 때 지금

import org.apache.spark.SparkContext 
import org.apache.spark.SparkConf 
val sc = new SparkConf().setAppName("myname").setMaster("mast") 
new SparkContext(sc) 

: 나는 2.2 스파크했을 때

, 내가 자동으로 sc을 받고 있지 않다 그래서 나는 다음 단계를 수행하여 하나를 만들어

val data = Array(1, 2, 3, 4, 5) 
val distData = sc.parallelize(data) 

오류 :

Value parallelize is not a member of org.apache.spark.SparkConf 

나는 FOLLO 이 단계는 공식 문서만을 사용하십시오. 아무도 나 잘못 설명해 줄 수 있니? 미리 감사드립니다. :)

+0

나는 "spark-shell"을 사용하여 _ "SparkContext 개체를 자동으로 가져 오는 곳"_으로부터 이해합니다. 'HADOOP_HOME'을 정의하고'$ HADOOP_HOME/bin'에'winutils.exe'를 저장 했습니까? –

답변

1

경우가에서 스파크에 대한 진입 점이기 때문에

Spark context available as 'sc' (master = local[*], app id = local-XXX).

실행

val sc = SparkContext.getOrCreate() 
+0

고마워요.하지만 제가 한 대답을 던졌습니다. 아래 답변에서 언급했듯이. –

+0

어떤 버전의 스파크 셸을 사용하고 있습니까? –

+0

awnser를 읽으십시오. 새 스파크 - 셸 세션에서 시도해보십시오. –

1

SparkConfig이 아닌 scSparkContext이 아니며 (둘 다 동일한 머리 글자가 있음) 문제가 발생했습니다. 스파크 2.0 버전 또는 다른 버전에있어서 병렬화하여 들어


, scSparkContext하지 SparkConf이어야한다. 올바른 코드는 다음과 같아야합니다.

import org.apache.spark.SparkContext 
import org.apache.spark.SparkConf 
val sparkConf = new SparkConf().setAppName("myname").setMaster("mast") 
val sc = new SparkContext(sparkConf) 
val data = Array(1, 2, 3, 4, 5) 
val distData = sc.parallelize(data) 

이렇게하면 원하는 결과를 얻을 수 있습니다. 처음에이 라인이 표시되지 않습니다스파크 쉘

+0

sc 대신 새 SparkContext()에서 sparkConf를 전달해야합니까? –

+0

죄송합니다. 내 실수. 예,'scarkConf'를'sc '대신'new SparkContext'에 전달해야합니다. 나는 나의 대답을 업데이트했다. – himanshuIIITian

+0

하나의 sparkcontext 객체 만 jvm에서 실행되어야한다는 오류가 발생합니다. 어떻게 이것을 피할 수 있습니까? –

0

당신은 SparkSession를 사용하는 것을 선호한다 버전 2. 다음과 같이 시도해보세요.

import org.apache.spark.sql.SparkSession 

val spark = SparkSession.builder. 
    master("local") 
    .appName("spark session example") 
    .getOrCreate() 
val sc = spark.sparkContext 
val data = Array(1, 2, 3, 4, 5) 
val distData = sc.parallelize(data) 

This is what I tried in Databricks

+0

을 승인하는 것을 잊지 마십시오. 그것은 작동하지 않습니다. getorcreate 메소드에 오류가 발생합니다. 내가 아는 한 당신은 위의 몇 가지 코멘트를 올렸지 만 당신은 그것을 삭제했다. 나는 이유를 모른다. 그 개념이 정확하다면 왜 다시 게시하지 않습니까 ?? –

+0

Databricks에서 편집 및 테스트 : 'sparkSession' 변수를 사용하여'SparkSession'을 가져 왔으며, 'spark'를 사용하여'sparkContext '를 가져오고 두 곳에서'spark' 변수를 편집했습니다. 이것은 내 끝에서 실수 였어. 그 죄송합니다. 자,이 코드는'Spark 2'를 사용한다면 작동 할 것입니다. – deadbug

+0

노력에 감사하지만 여전히 오류가 발생합니다. 여기에 게시 할 수없는 긴 오류가 있습니다. –

0

Apache Spark의 2.2.0 version에는 약간의 문제가 있습니다. 나는 가장 최근의 2.2.1 version으로 바꿨고 spark-shell을 통해 cmdwindows 7으로 시작할 때 scspark 변수를 자동으로 얻을 수 있습니다. 누군가가 도움이되기를 바랍니다.
아래 코드를 실행하여 rdd를 생성하고 완벽하게 작동합니다. 패키지를 가져올 필요가 없습니다.

val dataOne=sc.parallelize(1 to 10) 
dataOne.collect(); //Will print 1 to 10 numbers in array