在ipython中使用spark
说明:
spark 1.6.0
scala 2.10.5
spark安装路径是/usr/local/spark;已经在.bashrc中配置了SPARK_HOME环境变量。
方法一
/usr/local/Spark/bin/pyspark默认打开的是Python,而不是ipython。通过在pyspark文件中添加一行,来使用ipython打开。
cp pyspark ipyspark
vi ipyspark
# 在最前面添加
IPYTHON=1
# 启动
ipyspark
方法二:
通过为spark创建一个ipython 配置的方式实现。
# 为spark创建一个ipython 配置
ipython profile create spark
# 创建启动配置文件
cd ~/.config/ipython/profile_spark/startup
vi 00-pyspark-setup.py
在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", "pyspark"))
sys.path.insert(0, os.path.join(SPARK_HOME, "python", "lib", "py4j-0.9-src.zip"))
sys.path.insert(0, os.path.join(SPARK_HOME, "python"))
启动ipython
ipython –profile spark
测试程序
在ipython中输入一下命令,如果下面的程序执行完后输出一个数字,说明正确。
from pyspark import SparkContext
sc = SparkContext( 'local', 'pyspark')
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="" #="" 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="" “result:="" ”,="" nums.filter(isprime).count()="" 方法三="" 将上面的程序放入test.py文件,执行命令python="" test.py。发现错误。因为没有将pyspark路径加入pythonpath环境变量。="" 在~/.bashrc或/etc/profile中添加如下内容:="" #="" python="" can="" call="" pyspark="" directly="" export="" pythonpath="$SPARK_HOME/python:$SPARK_HOME/python/pyspark:$SPARK_HOME/python/lib/py4j-0.9-src.zip:$PYTHONPATH" 执行如下命令:="" #="" 使配置生效="" source="" ~/.bashrc="" #="" 测试程序="" python="" test.py="">
ipython与标准python的最大区别在于: ipython是一种工具,会对命令提示符的每一行进行编号。 python是语言,ipython也是基于python开发的。
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....