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

PyArrow中ChunkedArray.Index查询数组列报ArrowTypeError问题

PyArrow查询邻居节点数组的问题解决

问题原因

你用ChunkedArray.index()的方式不对:这个方法是用来查找整个元素在ChunkedArray中的位置,而neighboring_nodes列是list类型,你传入单个整数标量,它会尝试把标量转成list类型去匹配整个元素,所以触发类型错误。而node列是单个整数元素,所以能正常返回结果。

解决方案

1. 提取目标行的邻居数组

因为你是用pc.filter筛选了起始节点的行,结果应该只有一行,直接提取该行的邻居数组:

# 获取筛选后的单行邻居数组
neighbors = filtered_graph['neighboring_nodes'][0]

2. 检查目标节点是否存在

方法一:转Python列表判断(小数据量友好)

target_node = 10000001
is_neighbor = target_node in neighbors.to_pylist()

方法二:用PyArrow Compute函数(大数据量高效)

避免转成Python对象,直接用Arrow原生计算:

import pyarrow.compute as pc
import pyarrow as pa

target_node = pa.scalar(10000001, type=pa.int64())
# 判断邻居数组中是否存在目标节点
is_neighbor = pc.any(pc.equal(neighbors, target_node)).as_py()

3. 获取目标节点在邻居数组中的位置

如果需要知道目标节点在邻居数组里的索引,用pc.index():

idx = pc.index(neighbors, target_node).as_py()
# 未找到时返回-1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 05:52:43