pyspark
Definition
pyspark ์ฝ๋๋ฅผ ์์ฑํ์ฌ ์คํํ๋ ๋
ธ๋์
๋๋ค.
property ํจ๋ "3.source"์ pyspark ์ฝ๋๋ฅผ ์
๋ ฅํฉ๋๋ค.
Source Editor ๋ฒํผ("3.source" ์ฐ์ธก ์ฒซ ๋ฒ์งธ ๋ฒํผ) ํด๋ฆญ ์ Editor๊ฐ ํ์
๋๋ฉฐ ๋ณด๋ค ํฐ ํ๋ฉด์์ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
๋ํ Jupyter ์ฌ์ดํธ ๋ฐ๋ก๊ฐ๊ธฐ("3.source" ์ฐ์ธก ๋ ๋ฒ์งธ ๋ฒํผ) ์ ํ์ Jupyter Notebook์ด ์ด๋ฆฌ๋ฉฐ, Notebook์์ interactiveํ๊ฒ ์์
ํ ์ ์์ต๋๋ค.
์ข์ธก [Flow๊ตฌ์ฑ]๋
ธ๋ ์ค [pyspark]๋
ธ๋๋ฅผ drag & drop ํ ํ Property ํญ๋ชฉ์ ์
๋ ฅํฉ๋๋ค.
Property ํจ๋์ [๋๋ณด๊ธฐ+] ๋ฒํผ์ ๋๋ฅด๋ฉด ์
๋ ฅ๊ฐ๋ฅํ ์ ์ฒด Property ํญ๋ชฉ์ ๋ณผ ์ ์์ต๋๋ค.
Set
[setting], [scheduler], [parameter] ์ค์ ์ [์ํฌํ๋ก์ฐ] > [์์ฑ] > [๊ธฐ๋ณธ๊ตฌ์ฑ]์ ์ฐธ๊ณ ํฉ๋๋ค.
property
[Node Description] ์์ฑ ์ค์ธ ๋ ธ๋๋ช ์ ๋ ฅ
- version : spark ๋ฒ์ ์ ๋ ฅ(Spark2๊ฐ ๊ณ ์ ๊ฐ์)
- appName : appName ์ ๋ ฅ
- source : ์คํํ source code ์
๋ ฅ
- [Source Editor]๋ฅผ ์ ํํด์ ํ์ ๋ editor๋ฅผ ํตํด ์ฝ๋ฉ ๊ฐ๋ฅ
- argument : ์ธ์ ์ค์
- sparkOpts : ์คํ์ ์ฌ์ฉํ ์์ฑ (key, value) ์ ๋ ฅ
- forceOK : ์คํจ ์ ๊ฐ์ OK ์ฒ๋ฆฌ ์ฌ๋ถ
Example
์ ๋ ฅ๋ฐ์ ์ซ์์ ํ๊ท ์ ๊ตฌํด output.txtํ์ผ์ ์์ฑํ๋ ์์ ์ ๋๋ค.
property ํจ๋์ [3.source] ์ต์ ์ ์๋์ ๊ฐ์ด ์ ๋ ฅ
```""">>> from pyspark.context import SparkContext>>> sc = SparkContext('local', 'test')>>> b = sc.parallelize([1, 2, 3, 4])>>> basicAvg(b)2.5"""import syssys.stdout = open('output.txt','w')from pyspark import SparkContextdef basicAvg(nums):"""Compute the avg"""sumCount = nums.map(lambda x: (x, 1)).fold((0, 0), (lambda x, y: (x[0] + y[0], x[1] + y[1])))return sumCount[0] / float(sumCount[1])if __name__ == "__main__":master = "local"if len(sys.argv) == 2:master = sys.argv[1]sc = SparkContext(master, "Sum")nums = sc.parallelize([1, 2, 3, 4])avg = basicAvg(nums)print (avg)```์ํฌํ๋ก์ฐ ์ ์ฅ/์คํ ์ ์๋์ ๊ฐ์ด output.txtํ์ผ ์์ฑ ํ์ธ
Troubleshooting
pyspark node ์คํ์ [์คํํ ํด๋ฌ์คํฐ์ ์ฃผํผํฐ ๋ ธํธ๋ถ์ด ์์ต๋๋ค] ๋ฉ์์ง
- pyspark node๋ฅผ ์คํํ๋ ํด๋ฌ์คํฐ์ jupyter-notebook ์ปจํ ์ด๋๊ฐ ๊ตฌ์ฑ๋์ด ์๋์ง ํ์ธ
์ํฌํ๋ก์ฐ [์ธ์คํด์ค ์์ธ] > [ํ๋ฆ] ํญ ํ๋จ์ STD ๋ก๊ทธ์ ์๋์ ๊ฐ์ด ์๋ฌ๋ฉ์์ง ๊ธฐ๋ก๋จ
- java.io.IOException: Cannot run program "/usr/local/bin/python3.6": error=2, No such file or directory
- run_spark2.sh PYSPARK_PYTHON ์คํ๊ฒฝ๋ก ๋ณ๊ฒฝ # export PYSPARK_PYTHON=/usr/local/bin/python3.6export PYSPARK_PYTHON=/opt/conda/bin/python3.6