我在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()
我使用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
为什么我会收到此错误?
答案 0 :(得分:0)
代码中唯一可以提供错误的行就是这一行:
userid, movieid, rating, unixtime = line.split(',')
所以它抱怨没有足够的价值来解包,这意味着该行中没有任何逗号。在处理之前尝试打印线;通过这种方式,您可以轻松地分辨出您获得的数据以及处理数据的方式。