用户登录
用户注册

分享至

基于python的spark

  • 作者: SIR113583291
  • 来源: 51数据库
  • 2020-09-29
在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开发的。
软件
前端设计
程序设计
Java相关