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

flseospp  于 2021-06-28  发布在  Hive
关注(0)|答案(1)|浏览(329)

我在mapr有这样的Hive表。

数据在后端用逗号分隔。我尝试在使用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()

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

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

为什么我会犯这个错误?

kuhbmx9i

kuhbmx9i1#

您的代码中唯一一行可以给出该错误的是:

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

所以它抱怨没有足够的值来解包,这意味着行中没有任何逗号。在处理前试着打印行;这样你就可以很容易地知道你得到了什么数据以及你需要如何处理它。

相关问题