在本教程中,我尝试将两个Map器合并为一个-https://www.knowbigdata.com/blog/multiplying-matrix-using-mapreduce. 给定的文本文件输入具有:
1 1 6 L 1 2 5 L
1 5 8 L 2 3 9 R
..
其中l和r表示它是来自左矩阵还是右矩阵。这是我的密码:
n = 3;
l = 3;
for line in sys.stdin:
if 'L' in line:
(i, k, v) = re.split("[ \t]+", line.strip());
for j in range(1, l + 1):
print("%s %s %d\t%s L" % (i, k, j, v));
else:
(k, j, v) = re.split("[ \t]+", line.strip());
for i in range(1, n + 1):
print("%d %s %s\t%s R" % (i, k, j, v));
我得到这个错误: Value error: too many values to unpack (expected 3)
我是python和mapreduce的新手。我该怎么纠正这个问题?
谢谢您。
1条答案
按热度按时间xiozqbni1#
问题是,re.split函数将为您的输入返回4个值的列表。您正在尝试将这4个值解包并将它们赋给3个变量。
如果要放弃最后一个值,则在python中通常使用下划线作为palceholder变量: