当前位置:网站首页>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
边栏推荐
- Final review of information and network security (based on the key points given by the teacher)
- Garbage first of JVM garbage collector
- Set up the flutter environment pit collection
- Only learning C can live up to expectations top2 P1 variable
- 【逆向初级】独树一帜
- Interview collection library
- 05 personal R & D products and promotion - data synchronization tool
- ByteDance overseas technical team won the championship again: HD video coding has won the first place in 17 items
- Jetpack compose 1.1 release, based on kotlin's Android UI Toolkit
- Precipitated database operation class - version C (SQL Server)
猜你喜欢
List set data removal (list.sublist.clear)
Program counter of JVM runtime data area
JVM garbage collector part 2
Flink parsing (III): memory management
Wu Jun trilogy insight (IV) everyone's wisdom
05 personal R & D products and promotion - data synchronization tool
自动答题 之 Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。
03 products and promotion developed by individuals - plan service configurator v3.0
数据仓库建模使用的模型以及分层介绍
04 products and promotion developed by individuals - data push tool
随机推荐
MySQL advanced (index, view, stored procedure, function, password modification)
【逆向中级】跃跃欲试
Redis installation on centos7
Error: Publish of Process project to Orchestrator failed. The operation has timed out.
[VNCTF 2022]ezmath wp
mysql高级(索引,视图,存储过程,函数,修改密码)
沉淀下来的数据库操作类-C#版(SQL Server)
【MMdetection】一文解决安装问题
關於Stream和Map的巧用
微信防撤回是怎么实现的?
复盘网鼎杯Re-Signal Writeup
06 products and promotion developed by individuals - code statistical tools
Uipath browser performs actions in the new tab
Flink源码解读(一):StreamGraph源码解读
2021-03-22 "display login screen during recovery" can't be canceled. The appearance of lock screen interface leads to the solution that the remotely connected virtual machine can't work normally
Flink parsing (IV): recovery mechanism
Flink analysis (I): basic concept analysis
Flink 解析(一):基础概念解析
自动化运维利器-Ansible-Playbook
Idea breakpoint debugging skills, multiple dynamic diagram package teaching package meeting.