当前位置: 首页 > 知识库问答 >
问题:

在我的减速器类中,获取错误需要多个值

周玺
2023-03-14

我知道这是一个类似的问题。我已经看过一些答案,但没有一个有效。事情是这样的,我正在为我的MapReduce程序编写一个mapper和reducer,我得到以下错误

回溯(最近一次调用最后一次):文件“/usr/local/hadoop//reducer.py”,第10行,在desc中,count=line。拆分(“\t”,1)值错误:需要多个值才能解包

我无法调试错误,因为我不知道是什么导致了这个问题。请在下面找到我的映射器和缩减器类的代码。

映射器代码:

#!/usr/bin/env python
import sys
for line in sys.stdin:
    line = line.strip('')
    bYear = line.split(',')
    for birthYear in bYear:
        print '%s\t%s' % (bYear[6],1)

减速机代码:

#!/usr/bin/env python
import sys

current_desc = None
current_count = 0
desc = None

for line in sys.stdin:
    line = line.strip()
    **desc, count = line.split('\t', 1)** . ---> This is where I'm getting an error.
    try:
        count = int(count)
    except ValueError:
        continue

    if current_desc == desc:
        current_count += count
    else:
        if current_desc:
            # write result to STDOUT
            print '%s\t%s' % (current_desc, current_count)
        current_count = count
        current_desc = desc

if current_desc == desc:
    print '%s\t%s' % (current_desc, current_count)

请帮帮忙。

共有1个答案

邹德泽
2023-03-14

该特定行中似乎没有“\t”字符,因此行.split(“\t”,1)仅返回1个元素,不能分配给desc,计数

 类似资料:
  • 我正在尝试将团队添加到数据库中,但出现此错误。看了类似的问题,但没有一个解决了我的问题。(我是Django的新手) 我的代码看起来像: 形式。派克 模型。派克 意见。派克 当我尝试不使用表单时,例如仅使用标题字段: 它是成功地添加它。我在这里做错了什么?

  • 是否可以在一个减速器中发送一个动作?我有一个progressbar和一个音频元素。目标是在音频元素中更新时间时更新progressbar。但我不知道将ontimeupdate eventhandler放置在何处,也不知道如何在ontimeupdate的回调中分派操作来更新ProgressBar。下面是我的代码:

  • 对于我正在做的一些测试,我需要一个执行时间约为10秒的C#函数。它将从ASPX页面调用,但我需要该函数消耗服务器上的CPU时间,而不是呈现时间。对Northwinds数据库的缓慢查询或一些非常缓慢的计算将会工作。有什么想法吗?

  • 我们有一个实体的层次结构,例如,抽象Basket和两个concrete,它们又可以包含一些其他项的列表,例如,具有完全相同的层次结构(SaleBasketItem,ReturnBasketItem)。 因此,当我尝试执行hql查询时,问题就出现了 其中动态地为“sale”或“return”。然后,我将该查询放入中,其类型为我需要的,并尝试,其中是表示混凝土篮状态的一些枚举(每个混凝土类都不同,在抽

  • 在任何地方都找不到关于这个的文章。我基本上希望从程序中捕获“找不到模块”错误,并可以选择要求安装它,但即使使用try/catch语句,我似乎也无法捕获任何错误。这可能吗?我哪儿都没见过。 例如: 我想这可以通过一个独立的.js启动文件来完成,而无需任何第三方的要求,只需使用检查,然后从子进程运行,然后与另一个子进程一起运行。但感觉在单个app.js文件中执行此操作会更容易