【发布时间】:2025-12-09 02:20:12
【问题描述】:
我是 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})
我可以使用 python3 example.py 在 EMR 集群上运行它,但是当我尝试运行 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 并改用它吗?
【问题讨论】:
标签: pyspark geotrellis