GeoToolsSpatialRDDProvider(GeoMesa Spark)效率极低

lf5gs5x2  于 2023-05-29  发布在  Apache
关注(0)|答案(1)|浏览(197)

我试图使用GeoMesa的Spark集成从GeoPackage文件中读取大约250万行。由于没有为这个DataStore实现自定义的SpatialRDD,所以我必须使用GeoToolsSpatialRDDProvider。对于具有10 k-100 k行的层,这可以完美地工作。然而,当我尝试加载具有数百万行的图层时,该过程永远不会结束。
我研究了GeoToolsSpatialRDDProvider的实现,问题似乎是其中的rdd方法试图将FeatureReader迭代器转换为List,以便它可以被SparkContext并行化,但转换从未终止,Spark不断打印大量警告(主要是Futures超时),直到最终耗尽内存。
有没有一种方法可以在不增加Spark驱动程序内存的情况下使其更高效?

nimxete2

nimxete21#

GeoToolsSpatialRDDProvider是一种将数据导入Spark的简单方法,但它并不适用于繁重的工作负载。我不相信Spark有任何方法可以将数据从单个线程并行化到Spark集群中,而不首先将其加载到内存中。作为一种变通方法,您可以批量加载足够小的数据,然后对结果RDD进行联合。

相关问题