You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark读取OpenStreetMap数据时如何访问Tags字段筛选指定城市

筛选指定城市的实现方法

OSM中城市类relation实体的标签有固定规则:tags字段中会包含place: city的键值对标记实体类型为城市,城市名称默认存储在name键中,多语言版本名称可以通过name:语言代码键获取,比如中文名称对应name:zh。

你使用的是Spark框架处理ORC数据,框架中Map类型的字段可以直接通过字段名['键名']的语法访问指定键对应的值,具体实现代码如下:

1. 筛选所有城市级relation实体

all_cities = nlorc.filter(
    (nlorc.type == "relation") & 
    (nlorc.tags["place"] == "city")
)

2. 筛选指定名称的目标城市

# 替换为你需要查询的城市实际名称即可
target_city = nlorc.filter(
    (nlorc.type == "relation") & 
    (nlorc.tags["place"] == "city") &
    (nlorc.tags["name"] == "目标城市名称")
)

结果验证

如果需要确认筛选结果是否正确,可以执行以下语句查看对应记录的核心信息:

target_city.select("id", "tags", "members").show(truncate=False)

内容的提问来源于stack exchange,提问作者gilianzz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 05:39:00