我在非常大的Twitter数据集(~50M消息)上进行了大量的清理,注释和简单转换。我正在寻找某种类型的数据结构,它将像pandas一样包含列信息,但是与迭代器一起使用而不是一次将整个数据集读入内存。我正在考虑自己编写,但我想知道是否有类似功能的东西。我知道我不是唯一一个这样做的人!
所需功能:
>>> ds = DataStream.read_sql("SELECT id, message from dataTable WHERE epoch < 129845")
>>> ds.columns
['id', 'message']
>>> ds.iterator.next()
[2385, "Hi it's me, Sally!"]
>>> ds = datastream.read_sql("SELECT id, message from dataTable WHERE epoch < 129845")
>>> ds_tok = get_tokens(ds)
>>> ds_tok.columns
['message_id', 'token', 'n']
>>> ds_tok.iterator.next()
[2385, "Hi", 0]
>>> ds_tok.iterator.next()
[2385, "it's", 1]
>>> ds_tok.iterator.next()
[2385, "me", 2]
>>> ds_tok.to_sql(db_info)
更新:我已经确定了dict迭代器和pandas数据帧的组合,以满足这些需求。