아주 기본적인 Spark + Python pyspark 튜토리얼을 실행하려고합니다. http ://spark.apache.org/docs/0.9.0/quick-start.html
새로운 SparkContext를 초기화하려고하면
from pyspark import SparkContext
sc = SparkContext("local[4]", "test")
다음 오류가 발생합니다 :
ValueError: Cannot run multiple SparkContexts at once
예제 코드를 실행하려는 이전의 시도가 지워지지 않은 무언가를 메모리에로드했는지 궁금합니다. 샘플 코드가 실행되도록 메모리에 이미있는 현재 SparkContext를 나열하거나 지우는 방법이 있습니까?
-
답변 # 1
-
답변 # 2
실행 중입니다./bin/pyspark는 대화식으로 SPARKCONTEXT를 자동으로로드합니다. 다음은 pyspark를 시작할 때 표시되는 내용입니다.
Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /__ / .__/\_,_/_/ /_/\_\ version 0.9.1 /_/ Using Python version 2.6.6 (r266:84292, Feb 22 2013 00:00:18) Spark context available as sc.
... 처음에 "del sc"를 실행하거나 자동으로 정의 된대로 "sc"를 사용하십시오.
이 예제의 다른 문제는 정규 NFS 파일 시스템 위치를 보는 것처럼 보이지만 실제로 Hadoop의 HDFS 파일 시스템을 찾으려고합니다. 코드를 실행하기 전에 "hadoop fs -put README.md README.md"를 사용하여 $SPARK_HOME 위치에 README.md 파일을 업로드해야했습니다.
대화식으로 실행 한 수정 된 예제 프로그램은 다음과 같습니다.
from pyspark import SparkContext logFile = "README.md" logData = sc.textFile(logFile).cache() numAs = logData.filter(lambda s: 'a' in s).count() numBs = logData.filter(lambda s: 'b' in s).count() print "Lines with a: %i, lines with b: %i" % (numAs, numBs)
다음은 독립형 파이썬 파일의 수정 된 버전입니다 :
"""SimpleApp.py""" from pyspark import SparkContext logFile = "README.md" # Should be some file on your system sc = SparkContext("local", "Simple App") logData = sc.textFile(logFile).cache() numAs = logData.filter(lambda s: 'a' in s).count() numBs = logData.filter(lambda s: 'b' in s).count() print "Lines with a: %i, lines with b: %i" % (numAs, numBs)
이제 $SPARK_HOME/bin/pyspark SimpleApp.py를 사용하여 실행할 수 있습니다
-
답변 # 3
다른 SparkContext를 만들기 전에 sc.stop ()을 사용해 보셨습니까?
-
답변 # 4
PySpark 프롬프트에서 SparkContext로 사용자 정의 구성을 설정하는 대신 PySpark를 시작할 때 구성 할 수 있습니다.
예 :
pyspark --master yarn --queue my_spark_pool1 --conf spark.driver.extraLibraryPath="${LD_LIBRARY_PATH}" --conf spark.executorEnv.LD_LIBRARY_PATH="${LD_LIBRARY_PATH}"
이 conf를 PySpark의 sc 객체에 적용합니다.
- apache spark - 데이터 프레임의 행을 비교할 때 데이터 유형 오류 (Python)
- python - indexerror - spark 데이터 프레임을 수동으로 생성 할 때 목록 인덱스가 범위를 벗어 납니까?
- python - 'deltatables'라는 모듈이 없습니다
- python - 속성이있는 여러 중첩 XML 파일에서 데이터 프레임 데이터를 생성하도록 변환하는 방법
- python - PySpark 데이터 프레임에서 Array 열을 Structs 배열로 변환
- python - Pyspark의 스파크 데이터 프레임에서 에지 목록을 만드는 방법은 무엇입니까?
- python - PySpark에서 AnalysisException을 가져 오는 방법
- python - Dataframe Pyspark에서 행 수
- python - Pyspark 20에서 주말을 제외한 기간 동안 누적 합계를 계산하는 방법
- python - dtweekofyear보다 더 나은 솔루션이 있습니까?
이것은 터미널에 "pyspark"를 입력 할 때 시스템이 SparkContext (Object 일 수도 있음)를 자동으로 초기화 했으므로 새 것을 만들기 전에 중지해야합니다.
사용할 수 있습니다
새로운 SparkContext를 생성하기 전에
또한 사용할 수 있습니다
대신
Spark에서 새로운 기능이며 SparkContext () 함수의 매개 변수의 의미에 대해 잘 모르지만 위에 표시된 코드는 모두 저에게 효과적이었습니다.