我有一些现有的iPython代码,使用shapely在多边形内匹配点:
现在,我正在尝试将代码移植到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中对地理空间数据执行点多边形匹配的最佳方法是什么?有什么经验吗?
谢谢
/Henrik
发布于 2016-09-07 11:17:27
这就是如何让geos库在正确的路径中进行shapely安装:
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/.bashrchttps://stackoverflow.com/questions/34076145
复制相似问题