对于带有列表字段的表,我尝试调用地图
import ibis
from ibis import _
t = ibis.memtable({
'i': [1,2,3],
'x': [[1,2],[3,5],[6,7] ]
})
使用表对象的工作原理:
t.select(t.x.map(_ + 1))
但使用下划线 api(链表达式)失败:
t.select(_.x.map(_ + 1))
类型错误:+ 不支持的操作数类型:“Table”和“int”
在这种情况下,下划线 API 在这里是不明确的,因为它是指 lambda 参数还是外部表。
正如我here所说,没有真正的理由阻止在调用
ArrayMap
时使用第二种情况。
例如:
t.my_array_col.map(lambda x: _.a + x)
目前尚不清楚如何可靠地确定下划线像在原始示例中那样混合时的含义,并且我们不想阻止在下划线作为外部表使用中有效使用它,所以这就是它的含义。