我正在尝试用python编写一个UDF,它将从pig脚本调用。UDF需要接受日期为DD-MMM-YYYY格式的字符串,并返回DD-MM-YYYY格式。在这里,嗯,就像一月,二月。。DEC返回的MM是01,02。。。12在
python在我的UDF下面
#!/usr/bin/python
@outputSchema("newdate:chararray")
def GetMonthMM(inputString):
print inputString
#monthstring = inputString[3:6]
sl = slice(3,6)
monthstring = inputString[sl]
monthdigit = ""
if ( monthstring == "JAN" ):
monthdigit = "01"
elif ( monthstring == "FEB"):
monthdigit = "02"
elif(monthstring == "MAR"):
monthdigit = "03"
elif(monthstring == "APR"):
monthdigit = "04"
elif(monthstring == "MAY"):
monthdigit = "05"
elif (monthstring == "JUN"):
monthdigit = "06"
elif (monthstring == "JUL"):
monthdigit = "07"
elif (monthstring == "AUG"):
monthdigit = "08"
elif (monthstring == "SEP"):
monthdigit = "09"
elif (monthstring == "OCT"):
monthdigit = "10"
elif (monthstring == "NOV"):
monthdigit = "11"
elif (monthstring == "DEC"):
monthdigit = "12"
sl1 = slice(0,3)
sl2 = slice(6,11)
str1 = inputString[sl1]
str2 = inputString[sl2]
newdate = str1 + monthdigit + str2
return monthstring;
我做了一些调试,问题似乎是在切片之后,字符串被当作数组处理。我收到以下错误消息
^{2}$即使将字符串与另一个字符串(如at if(monthstring==“DEC”):,也会发生同样的情况。 即使monthstring的值为DEC,条件也永远不会满足。在
以前有人遇到过同样的问题吗?有什么办法解决这个问题吗。在
最近我使用了
calendar
模块,在不同的情况下可能更有用,但是无论如何。在我把这个函数写成:
相关问题 更多 >
编程相关推荐