我用python为pig编写了一个简单的udf
@outputSchema("date: chararray")
def to_date2(dt):
print dt
a = dt.split("/")
print a
return "20" + a[2] + a[0] + a[1]
我正在读一个csv,它有一个类似“1/1/17”的列,我正在尝试将它转换为 201711
使用此自定义项。
我出错了
Caused by: Traceback (most recent call last):
File "/tmp/pig715837049480092569tmp/util2.py", line 20, in to_date2
IndexError: index out of range: 2
但我在作业运行日志中看不到任何打印语句。
如果我正在编写python自定义项,如何将内容打印到hadoop日志中?所以我可以看到传递给我函数的dt值是多少?
1条答案
按热度按时间332nm8kg1#
我觉得你应该
strptime
解析日期,而不是拆分如果您想删除前导零(您应该保留它,或者至少保留一些分隔符以避免将201711解析为
Nov 2017
),看到这个答案了吗