我是 GeoTrellis 的新手,对 geopyspark 自述文件中的示例脚本有疑问:https ://github.com/locationtech-labs/geopyspark 。
这是脚本的缩写版本(我们称之为 example.py):
import json
from functools import partial
from geopyspark.geopycontext import GeoPyContext
from geopyspark.geotrellis.constants import SPATIAL, ZOOM
from geopyspark.geotrellis.geotiff_rdd import get
from geopyspark.geotrellis.catalog import write
from shapely.geometry import Polygon, shape
from shapely.ops import transform
import pyproj
# Create the GeoPyContext
geopysc = GeoPyContext(appName="example", master="local[*]")
# Read in the NLCD tif that has been saved locally.
# This tif represents the state of Pennsylvania.
raster_rdd = get(geopysc=geopysc, rdd_type=SPATIAL,
uri='/tmp/NLCD2011_LC_Pennsylvania.tif',
options={'numPartitions': 100})
我可以使用 在 EMR 集群上运行它python3 example.py
,但是当我尝试运行时spark-submit example.py
,我得到 TypeError: 'JavaPackage' object is not callable。
这似乎指向 geopyspark/geotrellis/geotiff_rdd.py 中的这一行:
geotiff_rdd = geopysc._jvm.geopyspark.geotrellis.io.geotiff.GeoTiffRDD
有什么方法可以运行此代码spark-submit
吗?根据我所阅读的内容,我似乎无法使用python example.py
. 是这样吗?如果是这样,我该如何解决这个问题以在集群上运行 GeoPySpark 代码?
我应该只学习scala并改用它吗?