作者:Neshoir
Spark框架支持多语言的开发环境,其中也包括python语言的spark开发。超图的iobjects for spark组件也同样提供了主流的scala及python语言环境的开发,产品包里的bdtpy就是iobjects for spark产品的python api,使用bdtpy可以基于spark分布式计算框架进行空间数据的处理和分析。本重点介绍如何使用python进行开发。
一、环境准备
- 以windows系统为例
- jdk 1.8 【已配置】
- spark 2.1.1 【其安装参考spark配置】
- Anaconda【其安装参考Anaconda安装】
- iobjects for java 912 组件
- iobjects for spark 912 组件
二、超图java组件配置
-
下载组件iobjects for java,并解压。
-
配置系统path环境变量,将java组件的bin文件的路径添加进去,如截图:
三、超图spark组件配置
-
下载组件iobjects for spark,并解压。
-
配置spark 2.1.1的环境,添加SPARK_HOME变量,并将spark 2.1.1的路径作为值。如图
-
配置环境变量PYTHONPATH,将SPARK_HOME相关的值添加进入,如图
-
因为安装的是conda环境,所以需要配置PYSPARK_DRIVER_PYTHON和PYSPARK_DRIVER_PYTHON_OPTS变量。如图
-
将conda的相关变量添加到系统path里,如图
-
配置spark 2.1.1的pyspark使用环境,编辑spark-env.sh文件,添加以下内容:
# 改为您机器环境的实际路径 export PYTHONPATH=D:/ProgramFiles/Spark_Dev/spark-2.1.1-bin-hadoop2.7/python export PYSPARK_PYTHON=/E:/ProgramFiles/Anaconda3 export PYSPARK_DRIVER_PYTHON=/E:/ProgramFiles/Anaconda3 export PYSPARK_SUBMIT_ARGS='--master local[*]'
-
进入解压后的iobjects for spark组件的bdtpy目录,进行安装bdtpy模块,如图
-
进入解压后的iobjects for spark组件的lib目录,将core包拷贝到spark 2.1.1的jars目录下,以方便与库的加载,如截图
-
最后记得配置9D java组件的试用许可。
四、验证开发
-
非系统磁盘目录下启动notebook,命令如截图
-
启动后,进入notebook 首页 ,点击“NEW”—“python 3”,新建一个记事本,如图
-
在新建的笔记本中,编写python代码,以读取udb为入门示例,代码如下:
# 导入spark对 from pyspark.sql import SparkSession # 初始化spark对象 ss = SparkSession.builder.appName("测试pyspark集群").getOrCreate() # 导入bdtpy中函数 from bdtpy import read_udb # 通过pyspark读取udb里数据集 regionRdd = read_udb(ss.sparkContext, 'E:/2019work/2019meet/AndroidAI/AI/数据/测试真实导航室内外数据/jia.udb', 'n_f1_line', 8) # 计算数据集的记录数量 regionRdd.count()
-
结果如截图
五、 总结
关于conda及notebook的使用可以查查官方的教程。对于bdtpy组件的api使用可以参考doc目录的api参考。