• pyspark在windows中的安装


    0、安装python,我用的是python2.7.13

    1、安装jdk

    一定要安装1.7以上的版本,安装低版本会报下面的错误

    java.lang.NoclassDefFoundError

    安装后不用手动设置环境变量,安装完成之后用“java -version”测试是否安装成功

    安装成功之后要添加一个“JAVA_HOME”的环境变量,因为在hadoop的libexechadoop-config.sh中定义了一个JAVA_HOME的环境变量,如果找不到该变量,后面运行“sc = SparkContext(appName="PythonPi")”时就会出现虚拟机初始化错误,不能分配内存

    2、下载并安装spark

    下载地址:http://spark.apache.org/downloads.html

    注意spark与hadoop的版本是严格对应的,文件名中也有体现,如果要安装hadoop,一定要安装对应的版本

    spark-1.6.3-bin-hadoop2.6.tgz就要安装2.6版本的hadoop。

    下载之后,将其解压到某文件夹,例解压到“C:sparkspark-1.6.3-bin-hadoop2.6”

    添加环境变量

      1、将“C:sparkspark-1.6.3-bin-hadoop2.6in”添加到系统变量Path中,这里面都是一些cmd文件

      2、新建一个系统变量SPARK_HOME,然后将路径C:sparkspark-1.6.3-bin-hadoop2.6添加进去

      3、运行pyspark检查是否安装成功,虽有有错误,但可以把环境打开,安装下面的东西才能解决这些错误

    3、下载并安装hadoop

    下载地址:https://archive.apache.org/dist/hadoop/common/

    根据上面这里要安装2.6版本的hadoop,然后将压缩包解压到指定文件夹,例如“C:sparkhadoop-2.6.5”

    添加环境变量

      1、将“C:sparkhadoop-2.6.5in”添加到系统变量Path中,这里面都是一些cmd文件

      2、新建一个系统变量HADOOP_HOME,然后将路径C:sparkhadoop-2.6.5添加进去

      3、运行pyspark检查看错误是否消息

    4、上面安装完成之后还是会有一个错误

    主要是因为Hadoop的bin目录下没有winutils.exe文件的原因造成的。这里的解决办法是:
      
    - 去 https://github.com/steveloughran/winutils 选择你安装的Hadoop版本号,然后进入到bin目录下,找到winutils.exe文件,下载方法是点击winutils.exe文件,进入之后在页面的右上方部分有一个Download按钮,点击下载即可。
    - 下载好winutils.exe后,将这个文件放入到Hadoop的bin目录下

    5、输入pyspark,运行正常

    Spark开始启动,并且输出了一些日志信息,大多数都可以忽略,需要注意的是两句话:

    Spark context available as sc.
    SQL context available as sqlContext

    只有看到这两个语句了,才说明Spark真正的成功启动了。

    6、在编译环境使用时,还要把C:sparkspark-1.6.3-bin-hadoop2.6python中的pyspark文件夹拷贝到对应的Libsite-packages

    7、运行pip install py4j安装包

    8、运行一个例子检测是否成功,这个例子在运行这个文件时,需要输入命令行参数
    import sys
    from random import random
    from operator import add
    
    from pyspark import SparkContext
    
    
    if __name__ == "__main__":
        """
            Usage: pi [partitions]
        """
        sc = SparkContext(appName="PythonPi")
        partitions = int(sys.argv[1]) if len(sys.argv) > 1 else 2
        print("partitions is %f" % partitions)
        n = 100000 * partitions
    
        def f(_):
            x = random() * 2 - 1
            y = random() * 2 - 1
            return 1 if x ** 2 + y ** 2 < 1 else 0
    
        count = sc.parallelize(range(1, n + 1), partitions).map(f).reduce(add)
        print("Pi is roughly %f" % (4.0 * count / n))
    
        sc.stop()
    • 1
    • 2Spark contextSQL context分别是什么,后续再讲,现在只需要记住,只有看到这两个语句了,才说明Spark真正的成功
  • 相关阅读:
    JSTL 配置
    HTML5 移动端web
    PHP 和 AJAX MySQL
    js php 互调
    google F12
    Codechef TRIPS Children Trips (分块、倍增)
    BZOJ 1859 Luogu P2589 [ZJOI2006]碗的叠放 (计算几何)
    AtCoder AGC002E Candy Piles (博弈论)
    BZOJ 2716 [Violet 3]天使玩偶 (CDQ分治、树状数组)
    AtCoder AGC001F Wide Swap (线段树、拓扑排序)
  • 原文地址:https://www.cnblogs.com/suntp/p/7477826.html
Copyright © 2020-2023  润新知