Jupyter与PySpark实现结合spark与python的notebook

Jupyter与PySpark实现结合spark与python的notebook

PySpark简介

Spark作为大数据计算平台具有很大优势,已成为业界共识。
其拥有一些强大的库:
SparkSQL:提供SQL语句,进行结构化数据查询和大数据集的探索。每个数据库表被当做一个RDD,Spark SQL查询被转换为Spark操作;
SparkMLLIB:主要提供机器学习算法和框架。这个库包含可扩展的学习算法,如分类、聚类、回归等需要对大量数据集进行迭代的操作;SparkMLLib的存在使得Spark不止是个数据分析框架,更是可以用于复杂的机器学习算法开发及模型训练,这个也是我们在强大的jupyter-notebook中引入spark的主要目的之一。
其余的Spark库如 Spark StreamingSpark GraphX也是很重要的库,分别提供实时处理和图计算能力,后面在我们的应用过程中也很有机会会用上。

Spark是用Scala写的,整个Spark生态系统需要运行在JVM环境中,并且需要利用本地的HDFS。Hadoop的HDFS是Spark支持的数据存储之一。Spark可以处理不同类型的数据资源、种类、格式等。
PySpark提供了Spark集成的API,并允许在集群中的所有节点上使用Python的生态系统。更重要的是,它提供Python机器学习的库(如sklearn)和数据处理方法(pandas)。
PySpark的工作原理如下图:
pyspark的工作原理
对于cluster的详细架构图如图所示
这里写图片描述
第一幅图中白色的为python部分,如左侧Local中的Spark Context为python shell中可用的sc
这里写图片描述
右侧则表示了Spark具体Worker与python执行体的关系, 图2中是集群情况下Python Process的一些细节描述。
pyspark的具体api使用信息参见
https://spark.apache.org/docs/2.2.0/api/python/index.html

Jupyter配置

假设Spark已经配置正常,pyspark也可以正常在shell中使用了,只不过此时使用的python是系统预置的,我们需要改成Anaconda3的IPython实现,为此在当前用户的.bashrc/etc/profile中增加配置

export PYSPARK_DRIVER_PYTHON=/webdev/app/anaconda3/bin/jupyter-notebook 
export PYSPARK_DRIVER_PYTHON_OPTS=" --ip=0.0.0.0 --port=7777"

如此以来,在启动$SPARK_HOME/bin/pyspark时便可根据环境变量使用Anaconda的jupyter-notebook

注意以上export了PYSPARK_DRIVER_PYTHONPYSPARK_DRIVER_PYTHON_OPTS两个环境变量后,非shell的pyspark 生怕认可应用也将使用者jupyter-notebook,这必然引起混乱,所以推荐的还是在pyspark的启动命令中当时指定。
如:

master$ PYSPARK_DRIVER_PYTHON=/webdev/app/anaconda3/bin/jupyter-notebook PYSPARK_DRIVER_PYTHON_OPTS=" --ip=0.0.0.0 --port=7777" pyspark --packages com.databricks:spark-csv_2.11:1.1.0 --master spark://spark_master_hostname:7077 --executor-memory 6400M --driver-memory 6400M

https://www.datacamp.com/community/tutorials/apache-spark-python#PySpark

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值