3

我正在尝试根据我的主要项目的 Date 列创建一个新列,该列从另一个 Google Refine 项目中提取时间线事件:

cell.cross("Clean5 Timeline", "TimelineDate").cells["TimelineEvent"].value[0]

两个 Google Refine 项目中的日期格式相同。但它不填充任何单元格,我收到此错误:

错误:无法从 null 检索字段

这 — cell.cross("Clean5 Timeline", "TimelineDate") — 为应该匹配的行返回 [ ]。

这 — cell.cross("Clean5 Timeline", "TimelineDate").cells["TimelineEvent"] — 为这些行返回 null。

我直接从 GREL 帮助文件中复制了语法:http ://code.google.com/p/google-refine/wiki/GRELOtherFunctions 。谁能建议我可能会忽略什么?

谢谢。

4

1 回答 1

3

如果无法访问您的项目,将很难回答这个问题,但我建议的第一件事是您缩减您的表达式以找出 null 的确切来源。

自从

cell.cross("Clean5 Timeline", "TimelineDate")

正在返回一个空数组([]),基于该结果的任何内容都不会起作用。

我可以想到三个可能的问题:1)项目名称错误,2)列名错误,3)数据值不匹配(或Refine认为它们不匹配),或4)您遇到了 Refine 2.5 中存在的 cross() 缓存错误。

如果您遇到错误,重新启动 Refine 服务器应该会清除缓存,并且它也在当前源存储库中修复。该修复程序将包含在 OpenRefine 2.6 中。

于 2012-05-06T19:46:10.103 回答