【发布时间】:2022-10-15 03:50:53
【问题描述】:
我们的组织最近一直在使用 Databricks 进行 ETL 和数据集开发。但是,我发现栅格数据集的库/功能非常有限。周围有一些 raster/Spark 库,但还不是很成熟。例如GeoTrellis、RasterFrames 和Apache Sedona。
因此,我一直在探索在 Databricks 平台上有效处理栅格数据的替代方法,该平台利用 Spark / Delta 表 / Parquet 文件。
我的一个想法是将栅格数据转储到简单的 x、y、值列并将它们作为表加载。如果我的其他数据集具有相同的分辨率(我将对它们进行预处理,以便它们是),那么我应该能够为屏蔽/加法/减法和更复杂的用户定义函数执行简单的 SQL 查询。
第一步,我想将我的栅格转储为 CSV 格式的点,然后我可以加载到 Delta 表中。但是在我的 Databricks 集群(128GB 内存,16 核)上运行 12 小时后,一个 3GB 的栅格仍然没有完成(我正在使用下面的 gdal2xyz 函数)。
有没有人有更快的方法将栅格转储到 CSV?甚至更好,直接以镶木地板格式。
python gdal2xyz.py -band 1 -skipnodata "AR_FLRF_UD_Q1500_RD_02.tif" "AR_FLRF_UD_Q1500_RD_02.csv"
也许我可以平铺栅格,使用并行处理将每个 CSV 转储到文件中,然后将 CSV 文件绑定在一起,但这似乎有点费力。
【问题讨论】:
标签: gis databricks raster gdal terra