pycharm 開(kāi)發(fā)pyspark

下載spark包

配置參數(shù)

配置spark參數(shù)
vim ${spark_dir}/conf/spark-env.sh
export SPARK_LOCAL_IP=ifconfig|grep -1a en0|grep netmask|awk {'print $2'}
HADOOP_CONF_DIR=$SPARK_HOME/conf

vim ${spark_dir}/conf/spark-defaults.conf
spark.master local

配置系統(tǒng)環(huán)境
vim ~/.bash_profile
SPARK_HOME=${spark_dir}
export PYTHONPATH=$SPARK_HOME/python/:$SPARK_HOME/python/lib/py4j-0.10.3-src.zip:$PYTHONPATH
export PYSPARK_DRIVER_PYTHON=ipython
export PYSPARK_PYTHON=python
export SPARK_HOME

因?yàn)閜ycharm會(huì)讀取.bash_profile,不過(guò)執(zhí)行代碼的時(shí)候會(huì)把PYTHONPATH會(huì)覆蓋掉.
所以讓pycharm先設(shè)置PYTHONPATH.

preferences->project interpreter->show all->


image.png

image.png
image.png

這樣就可以在本地開(kāi)發(fā)spark任務(wù)了

from __future__ import print_function
import sys
from random import random
from operator import add

from pyspark.sql import SparkSession

if __name__ == "__main__":
    """
        Usage: pi [partitions]
    """
    spark = SparkSession.builder.appName("PythonPi").getOrCreate()

    partitions = int(sys.argv[1]) if len(sys.argv) > 1 else 2
    n = 100000 * partitions

    def f(_):
        x = random() * 2 - 1
        y = random() * 2 - 1
        return 1 if x ** 2 + y ** 2 <= 1 else 0

    count = spark.sparkContext.parallelize(range(1, n + 1), partitions).map(f).reduce(add)
    print("Pi is roughly %f" % (4.0 * count / n))

    spark.stop()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容