Windows 환경에서 Spark + Python을 사용해보십시오.

계기



미국의 BigData의 담당자에게 BigData를 취급한다면 Spark에서 SQL이라든지를 분산시킨다고 해서라고 들었으므로, 조금 시험해 볼까라는 신경이 쓰였으므로 시험해 본다.

검증 환경



・Windows10 Home (Ver.1803)

환경 구축



· JDK
・Spark
· 파이썬

JDK



들어간 것 같아서 확인
java -version



이미 들어갔다. 포함되어 있지 않은 경우 필요 설치.

파이썬



Anaconda로 넣고 있지만, 만약을 위해 확인.
python --version



모듈로 findspark가 필요하기 때문에 설치하십시오.
python -m pip install findspark

스파크



이것이 이번 본근.

다운로드





winutils도 필요하므로 다운로드하십시오.
htps : // 기주 b. 이 m/s ゔぇぉぉ gh란/우우누치 ls/bぉb/마s r/하오오 p2.7.1/병/우우누치 ls. 네

배치



압축을 풀고 적절한 곳에 놓고 환경 변수를 설정하십시오.

이번에는 아래에 배치
C:\tools\spark-2.4.3-bin-hadoop2.7
※winutils.exe는 bin 안에 저장

환경 변수는
SPARK_HOME,HADOOP_HOME : 배치한 폴더(이번이라면 [C:\tools\spark-2.4.3-bin-hadoop2.7])
PATH: [%SPARK_HOME%\bin] 추가

확인


spark-shell



사용할 수 있는 상태가 되어 있다고 생각된다
pyspark



사용할 수 있는 상태가 되어 있다고 생각된다

시도해보기



Anaconda prompt에서 pyspark를 실행하고 다음을 흘려 보자.
import pyspark # only run after findspark.init()
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()

df = spark.sql('''select 'spark' as hello ''')
df.show()



움직이고 있는 것 같다.
하지만, 이것으로 대량 데이터를 심판하는 것인가? 라는 중요한 부분을 잘 모른다. . .

그리고, 또 하나의 샘플을 실행해 보았더니, 예외 발생.
import json, os, datetime, collections
from pyspark.sql import SQLContext, Row
from pyspark.sql.types import *

csv_file = r"C:\work\20190821\click_data_sample.csv"
print(csv_file)
if not os.path.exists(csv_file):
    print("csv file not found at master node, will download and copy to HDFS")

whole_raw_log = sc.textFile("/user/hadoop/click_data_sample.csv")
header = whole_raw_log.first()
whole_log = whole_raw_log.filter(lambda x:x !=header).map(lambda line: line.split(","))\
            .map(lambda line: [datetime.datetime.strptime(line[0].replace('"', ''), '%Y-%m-%d %H:%M:%S'), int(line[1]), line[2].replace('"', '')])

whole_log.take(3)

위의

header = whole_raw_log.first()

그런데 예외.


  File "C:\tools\spark-2.4.3-bin-hadoop2.7\python\lib\py4j-0.10.7-src.zip\py4j\protocol.py", line 328, in get_return_value
py4j.protocol.Py4JJavaError: An error occurred while calling o31.partitions.
: org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: file:/user/hadoop/click_data_sample.csv

? ?
file:/user/hadoop/click_data_sample.csv
어디를 가리키는거야? ?
Spark의 환경은 할 수 있었다고 해도, 쫄깃한 구조를 모르면 「사용」할 수 없을 것 같은 느낌이 든다.

참고



htps //w w. 구루 99. 이 m / pys 파 rk-Tori l. HTML
h tps : // 오오 dbi 암 gs r. 하테나 bぉg. 코m/엔트리/2018/06/27/022915
htps://k 20b에. 하테나 bぉg. 코m/엔트리/20180812/1534035813
htps : // 이 m / 토모 타구 rk / ms / 1431f692387242f4 A636
htps : // 이 m / 타카 4 사토 / ms / 4 아 b2cf9 941599f1c0
htps : // 이 m / 미야모토 k0105 / ms / bf3638607에 f6cb95f01b

좋은 웹페이지 즐겨찾기