如何用SPARQL查询两个CSV数据源并合并去重员工姓名
合并两个CSV员工姓名并去重的SPARQL查询
下面是针对需求编写的SPARQL查询,以Apache Jena引擎为例(多数主流SPARQL工具都支持类似逻辑):
PREFIX csv: <http://jena.apache.org/csv#> SELECT DISTINCT ?employeeName WHERE { # 读取csv1,将Name列值映射到统一变量 SERVICE csv:parse { [] csv:data <file:///你的文件路径/csv1.csv> ; csv:header "Name" ; csv:row [ csv:col ?employeeName ] . } UNION # 读取csv2,将EmployeeName列值映射到同一变量 SERVICE csv:parse { [] csv:data <file:///你的文件路径/csv2.csv> ; csv:header "EmployeeName" ; csv:row [ csv:col ?employeeName ] . } }
关键说明:
PREFIX csv:是Jena用于解析CSV的服务前缀,确保引擎能识别CSV处理逻辑- 替换
<file:///你的文件路径/csv1.csv>和<file:///你的文件路径/csv2.csv>为实际的CSV文件路径(Windows路径格式类似<file:///C:/xxx/csv1.csv>,Linux/macOS为<file:///home/xxx/csv1.csv>) UNION合并两个CSV的查询结果,DISTINCT自动过滤重复的姓名(比如Jim、Jack只会保留一次)- 如果使用其他SPARQL引擎(如Virtuoso),语法可能略有调整,但核心逻辑都是映射统一变量 + 合并结果 + 去重
内容的提问来源于stack exchange,提问作者Rahul
相关产品推荐
相关产品推荐

