当前位置:网站首页>PySpark算子处理空间数据全解析(5): 如何在PySpark里面使用空间运算接口
PySpark算子处理空间数据全解析(5): 如何在PySpark里面使用空间运算接口
2022-07-06 09:35:00 【51CTO】
park是分布式计算的,PySpark实际上是用Python调用了Spark的底层框架,那么这些个框架是如何调用的呢?上一篇说了一下Python里面利用GDAL包实现的空间算子,那么这些个整个调用流程是怎么样的呢?今天我们来一起探索一下。
本系列的第一篇文章就说过,要跑PySpark,需要用Py4J这个包,这个包的作用就是利用Python来调用Java虚拟机里面的对象,原理是这样的:
Python的算法通过Socket将任务发送给Java虚机,JAVA虚机通过Py4J这个包解析,然后调用Spark的Worker计算节点,再把任务还原成Python实现,执行完成之后,再反向走一遍。
具体的说明请查看这篇文章,我就不重复了:
http://sharkdtu.com/posts/pyspark-internal.html
可以看出来,用Python写的内容,最后再Worker端,也是用Python的算法或者包来进行实现,下面我们来做一个实验:
利用Python的sys包来查看运行的Python的版本,用socket包来查看节点的机器名,这两个包都是Python特有的,如果说PySpark仅仅运行的是Java的话,在不同节点上,应该是无法执行的。
我这里一共有两台机器,分别叫做sparkvm.com和sparkvmslave.com,其中Sparkvm.com是master + worker,而sparkvmslave.com仅仅是worker。
最后执行的表明,在不同的节点上返回了不同的结果。
从上面的实验可以看出,不同的计算节点上,最终使用的是Python的算法包,那么如何在不同的节点上使用空间分析算法呢?
在Spark上,利用的算法插件这种方式来实现:
只要在不同的节点上都安装同样的Python算法包,就可以执行了,关键点在于需要配置好系统的Python,因为PySpark默认调用的是系统的Python。
下面再做一个实验:
然后在PySpark上面在运行一个示例:
两个节点,为什么全部都在一个节点上执行呢?看看debug出来日志:
发现在153节点上,已经抛出了异常,说没有找到pygeohash包。
下面我在153上面,把pygeohash包安装上:
然后再次执行上面的内容:
最后我们来利用gdal的空间算法接口,来跑一个示例:
待续未完
源代码可以通过我的Gitee或者github下载:
github: https://github.com/allenlu2008/PySparkDemo
gitee: https://gitee.com/godxia/PySparkDemo
边栏推荐
- Interpretation of Flink source code (II): Interpretation of jobgraph source code
- 肖申克的救赎有感
- C# WinForm中DataGridView单元格显示图片
- 07 personal R & D products and promotion - human resources information management system
- Instructions for Redux
- MySQL报错解决
- 案例:检查空字段【注解+反射+自定义异常】
- C#版Selenium操作Chrome全屏模式显示(F11)
- Flink 解析(二):反压机制解析
- 吴军三部曲见识(七) 商业的本质
猜你喜欢
Uipath browser performs actions in the new tab
The problem of "syntax error" when uipath executes insert statement is solved
自动答题 之 Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。
JVM garbage collector part 2
02个人研发的产品及推广-短信平台
Flink parsing (III): memory management
Programmer orientation problem solving methodology
虚拟机启动提示Probing EDD (edd=off to disable)错误
【逆向中级】跃跃欲试
EasyRE WriteUp
随机推荐
Serial serialold parnew of JVM garbage collector
Interview collection library
Program counter of JVM runtime data area
吴军三部曲见识(七) 商业的本质
信息与网络安全期末复习(完整版)
PySpark算子处理空间数据全解析(4): 先说说空间运算
沉淀下来的数据库操作类-C#版(SQL Server)
Models used in data warehouse modeling and layered introduction
Prototype chain inheritance
肖申克的救赎有感
Precipitated database operation class - version C (SQL Server)
mysql高级(索引,视图,存储过程,函数,修改密码)
JVM garbage collection overview
Akamai anti confusion
Programmer orientation problem solving methodology
1. Introduction to JVM
【逆向中级】跃跃欲试
JVM运行时数据区之程序计数器
vscode
03个人研发的产品及推广-计划服务配置器V3.0