我正在协助一个项目分析2013年NCAA男子篮球锦标赛中有关游戏的Twitter对话量。我们使用简单的Node.js请求和Twitter Streaming API's Status Filter方法收集了推文,并将响应保存在纯文本文件中。到目前为止,我们已经收集了大约1500万篇关于
的推文现在我们正在尝试处理这些推文,并使用另一个简单的Node.js脚本将相关信息(uid,时间戳,文本和语言)上传到MongoDB数据库中,如this Gist所示,该脚本也有我们收集的非常小的原始推文样本。将推文加载到数据库后,我们将过滤并聚合它们以导出我们需要的信息。
所以这就是问题:当运行在数据库中保存推文的脚本时,它会引发意外的文件错误并终止。我已经验证了ReadStream和Lazy实例已经初始化,当脚本尝试对每一行进行操作并将该行解析为有效的JSON对象时,问题似乎正在发生。
有关为何发生这种情况或如何解决问题的想法?
示例堆栈跟踪
undefined:1
3","indices":[3,10]}]},"favorited":false,"retweeted":false,"filter_level":"low
^
SyntaxError: Unexpected end of input
at Object.parse (native)
at /home/ubuntu/ncaa/savetodb.js:31:34
at Lazy.<anonymous> (/home/ubuntu/ncaa/node_modules/lazy/lazy.js:91:13)
at Lazy.<anonymous> (/home/ubuntu/ncaa/node_modules/lazy/lazy.js:73:19)
at Lazy.EventEmitter.emit (events.js:95:17)
at yieldTo (/home/ubuntu/ncaa/node_modules/lazy/lazy.js:181:18)
at Function.<anonymous> (/home/ubuntu/ncaa/node_modules/lazy/lazy.js:219:25)
at Lazy.<anonymous> (/home/ubuntu/ncaa/node_modules/lazy/lazy.js:187:21)
at Lazy.EventEmitter.emit (events.js:95:17)
at ReadStream.<anonymous> (/home/ubuntu/ncaa/node_modules/lazy/lazy.js:50:22)