3.3.1 数据分发

更新于 2026年10月10日 版权声明
3.3.1 数据分发

由于空间数据采用链式编码等存储方式,因此,在数据分发过程之前需要对线对象(way)和组合对象(relation)等形式的空间数据进行表关联得到最终的空间数据。频繁的表关联操作并不适合在分布式操作中进行操作。因此在进行分布式预处理之前首先把线对象和组合对象进行处理,生成具有完整空间信息的空间对象,并采用GeoJSON格式,将生成的对象进行存储。

线对象的GeoJSON格式如下,其中,“id”表示线对象way或点node的唯一编号,“type”表示类型,包括“way”和“node”,“index”表示点索引,“lon” 表示点的经度,“lat”表示点的纬度。

图示(https://www.daowen.com)

处理完成后,按照集群中的计算节点数量N,将原始数据集划分为N个子数据集合,使用Spark框架将子数据集分发到各个集群,子数据集合的数据量大致相等,使得各节点的计算量大致相同。在数据分发过程中,从HDFS中读取数据并按照制定的分片规则生成若干个弹性分布式数据集分片,以便进行分布式计算。数据分发采用默认的Hash分片,处理流程图如图3-8所示,在每个计算节点上生成弹性分布式数据集String RDD。

图示

图3-8 数据分发处理流程

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)