当前位置: 代码迷 >> 综合 >> [Spark]Django项目中使用Spark(pyspark)
  详细解决方案

[Spark]Django项目中使用Spark(pyspark)

热度:70   发布时间:2023-12-18 01:43:00.0

本博文所需的环境:

1.ubuntu 13

2.已经安装好JDK,python,django,Hadoop,spark,eclipse,apache。并已经配好相应的环境变量


首先,为了让eclipse能够支持python项目的开发。需要下载PyDev压缩包。这个我已经上传了,下载路径:

http://download.csdn.net/detail/rongyongfeikai2/8619755

下载之后,将压缩包内容解压缩到eclipse安装目录下的dropin文件夹下,即可。


此时重启eclipse,可以看到新建项目一栏,多了PyDev项目的选择,下面有3种类型选择,其中包括新建django项目。


接着,我们就新建一个Django项目。可以用Django项目内部的manage.py startapp appname,新建自己需要的app。


============================华丽的分割线,重点在下面==============


1.如何让eclipse能够对我们写spark相关脚本时(如使用pyspark中的一些类),进行自动提示?

在你新建的django项目上右键->Properties->PyDev PYTHONPATH->Exernal Libraries->Add source folder,将你安装的spark下的python所在的路径放入进去。

如下图所示:


2.添加完成之后,试着在你的项目中的view.py中写代码:

如from pyspark import SparkContext

可以看到提示和自动帮你补全代码了:



2.如何运行此django程序?

我们都知道,django是一个MTV web框架,它的views.py中的方法类似于传统意义上MVC框架的Controller,而urls.py则定义了路由规则(即url=>views.py中的方法的对应关系)

假设我们在view.py中写了这样一段代码:



然后urls.py中进行了配置
使得http://localhost/index,访问这个url时,即是访问的views.py中的index方法。
假如我们没做任何配置,那么访问此url时,会提示“cannot found pyspark module”。即pyspark模块找不到。
很明显,我们需要让django项目一运行,就引入pyspark模块。
这就需要在settings.py中加入一段配置:



其中/usr/local/spark/python/build是py4j所在的路径,/usr/local/spark/python是pyspark所在路径。

这段代码的含义就是,将这两个路径加入到python的全局搜索路径列表中。即python当在自己的路径下找不到模块时,会到sys.path中的路径中去找该模块。

这样当运行django项目时,就可以访问到pyspark模块了。


此时,再在浏览器中输入:

http://localhost/index

就可以看到/home/pijing/test.json中的内容了。


经过以上动作,就可以愉快的进行spark+django项目的开发了。