(<type'exception.valueerror'=“”>,ValueError(&#39;需要多于1个值才能解包&#39;,),<traceback object =“”at =“”0x7f24dea1a0e0 =“”>)NULL NULL空值

时间:2016-10-18 02:31:36

标签: python hive mapr

我在MapR中有这样的HIVE表。

enter image description here

数据在后端用逗号分隔。我想在使用python时使用自定义map reduce。这是python代码。

import sys
import datetime
try:
    for line in sys.stdin:
        line = line.strip()
        userid, movieid, rating, unixtime = line.split(',')
        weekday = datetime.datetime.fromtimestamp(float(unixtime)).isoweekday()
        print ','.join([userid, movieid, rating, unixtime, str(weekday)])
except:
    print sys.exc_info()

我使用add File添加了python脚本,提交了这样的查询

select TRANSFORM (userid,movieid,rating,unixtime) using 'python mod.py' as (userid,movieid,rating,weekday) from u_data;

我来到这里的错误是

(<type 'exceptions.ValueError'>, ValueError('need more than 1 value to unpack',), <traceback object at 0x7f24dea1a0e0>) NULL    NULL  NULL

为什么我会收到此错误?

1 个答案:

答案 0 :(得分:0)

代码中唯一可以提供错误的行就是这一行:

userid, movieid, rating, unixtime = line.split(',')

所以它抱怨没有足够的价值来解包,这意味着该行中没有任何逗号。在处理之前尝试打印线;通过这种方式,您可以轻松地分辨出您获得的数据以及处理数据的方式。