Ubuntu下安装PySpark

最近参加一个大数据比赛,发现处理这些数据如果使用普通的代码需要非常长的时间。同时最近也学校也开了相关课程提到如何在Python下使用Spark,所以安装PySpark,这里记录下,方便他人和自己的使用。
安装环境:
Java6+
python2.6+ or python3.4+
(需要Java和python添加到相关PATH中)

  • 安装Spark

    • 下载
      Spark官网下载地址
      这里可以选择相应的配置。我选择的是(spark2.0.2和hadoop2.7)
    • 解压压缩包
    tar -xzf spark-2.0.2-bin-hadoop2.7.tgz

    解压压缩包,获得spark相应位置

  • 移动spark位置

    mv spark-2.0.2-bin-hadoop2.7 /srv/spark-2.0.2

    在这里可以将spark文件移动到任意一个位置。我这里移动到/srv下
  • 建立软链接

    ln -s /srv/spark-2.0.2 /srv/spark

    创建指向该Spark版本的符号链接到spark目录。这样你可以简单地下载新/旧版本的Spark,然后修改链接来管理Spark版本,而不用更改路径或环境变量。

    • 修改配置文件,添加到Path中
      修改BASH配置,将Spark添加到PATH中,设置SPARK_HOME环境变量。编辑~/.bash_profile或~/.profile文件,将以下语句添加到文件中
      export SPARK_HOME=/srv/spark
      export PATH=$SPARK_HOME/bin:$PATH

    PS:‘=’两边不能有空格

    • 测试运行安装情况
      source这些配置(或者重启终端),你就可以在本地运行一个pyspark解释器。
source .profile
pyspark

结果如下:
这里写图片描述
到这里已经顺利安装好Pyspark了。接下来要配置Ipython-notebook的运行环境。

  • 配置Ipython-notebook,使用spark
    • 为Spark创建一个iPython notebook配置
ipython profile create spark
  • 创建文件$HOME/.ipython/profile_spark/startup/00-pyspark-setup.py,并添加如下代码:
import os
import sys

 # Configure the environment
 if 'SPARK_HOME' not in os.environ:
     os.environ['SPARK_HOME'] = '/srv/spark'

 # Create a variable for our root path
 SPARK_HOME = os.environ['SPARK_HOME']

 # Add the PySpark/py4j to the Python Path
 sys.path.insert(0, os.path.join(SPARK_HOME, "python", "build"))
 sys.path.insert(0, os.path.join(SPARK_HOME, "python"))
  • 使用我们刚刚创建的配置来启动IPython notebook。
ipython notebook --profile spark
  • 在IPython notebook最上面,确保你添加了Spark context。
from pyspark import  SparkContext
sc = SparkContext( 'local', 'pyspark')
'''这里可能会报
ImportError: No module named py4j.java_gateway
ImportError: cannot import name accumulators
#解决方法:pip install py4j
'''
  • 测试
def isprime(n):
    """
    check if integer n is a prime
    """
    # make sure n is a positive integer
    n = abs(int(n))
    # 0 and 1 are not primes
    if n < 2:
        return False
    # 2 is the only even prime number
    if n == 2:
        return True
    # all other even numbers are not primes
    if not n & 1:
        return False
    # range starts with 3 and only needs to go up the square root of n
    # for all odd numbers
    for x in range(3, int(n**0.5)+1, 2):
        if n % x == 0:
            return False
    return True

# Create an RDD of numbers from 0 to 1,000,000
nums = sc.parallelize(xrange(1000000))

# Compute the number of primes in the RDD
print nums.filter(isprime).count()

运行完这段代码。如果出现数字并没有报错,那么说明已经安装成功了~~!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值