大约一个小时前,我发布了一个类似的问题,但在意识到我问错问题后将其删除。我有以下腌制defaultdict
:
ccollections
defaultdict
p0
(c__builtin__
list
p1
tp2
Rp3
V"I love that"
p4
(lp5
S'05-Aug-13 10:17'
p6
aS'05-Aug-13 10:17'
使用 Hadoop 时,始终使用以下方式读取输入:
for line in sys.stdin:
我尝试defaultdict
使用以下方法阅读腌制:
myDict = pickle.load(sys.stdin)
for text, date in myDict.iteritems():
但无济于事。其余代码在我使用 .load('filename.txt') 本地测试时工作。我做错了吗?如何加载信息?
更新:
遵循在线教程后,我可以将代码修改为:
def read_input(file):
for line in file:
print line
def main(separator='\t'):
myDict = read_input(sys.stdin)
这会打印出每一行,表明它正在成功读取文件 - 但是,没有保留defaultdict
结构的相似之处,输出如下:
p769
aS'05-Aug-13 10:19'
p770
aS'05-Aug-13 15:19'
p771
as"I love that"
显然,这并不好。有人有什么建议吗?