我有一些现有的iPython代码,用于匹配多边形中的点:
现在,我正在尝试将代码移植到Bluemix上的pyspark(版本1.4)
运行以下行失败:
!pip install --user shapely
错误消息显示为:
Collecting shapely
Using cached Shapely-1.5.13.tar.gz
Complete output from command python setup.py egg_info:
Failed `CDLL(libgeos_c.so.1)`
Failed `CDLL(libgeos_c.so)`
Traceback (most recent call last):
File "<string>", line 20, in <module>
File "/tmp/pip-build-ylMKmC/shapely/setup.py", line 38, in <module>
from shapely._buildcfg import geos_version_string, geos_version, \
File "shapely/_buildcfg.py", line 167, in <module>
fallbacks=['libgeos_c.so.1', 'libgeos_c.so'])
File "shapely/_buildcfg.py", line 161, in load_dll
libname, fallbacks or []))
OSError: Could not find library geos_c or load any of its variants ['libgeos_c.so.1', 'libgeos_c.so']
显然存在对Geos C库的依赖。现在,我不知道是否可以安装Geos C或前进的方式。
所以我真正的问题是,在pySpark中对地理空间数据进行多边形匹配的点的最佳方法是什么?任何经历?
谢谢
/亨里克
答案 0 :(得分:1)
这就是如何在正确的路径中获取地理库以进行形状安装:
wget http://download.osgeo.org/geos/geos-3.5.0.tar.bz2
tar jxf geos-3.5.0.tar.bz2
cd geos-3.5.0 && ./configure --prefix=$HOME/geos-bin && make && make install
sudo cp /home/hadoop/geos-bin/lib/* /usr/lib
sudo /bin/sh -c 'echo "/usr/lib" >> /etc/ld.so.conf'
sudo /bin/sh -c 'echo "/usr/lib/local" >> /etc/ld.so.conf'
sudo /sbin/ldconfig
sudo /bin/sh -c 'echo -e "\nexport LD_LIBRARY_PATH=/usr/lib" >> /home/hadoop/.bashrc'
source /home/hadoop/.bashrc