1
我正在使用pyspark 2.0。我得到的酸洗错误娄代码PicklingError:Can not pickle <type'function'>:属性查找__builtin __。在调用UDF时,函数在pyspark中失败
from pyspark.sql.types import*
from datetime import datetime
from pyspark.sql.functions import udf
def getTime():
timevalue=datetime.now()
return timevalue
spark.udf.register('Getday', getTime,TimestampType())
def datetostring_conv(datevalue):
stringvalue=datevalue.strftime('%Y-%m-%d')
print stringvalue
intstring=stringvalue[0:4]+stringvalue[5:7]+stringvalue[8:10]
return intstring
spark.udf.register('IntString',lambda(x):datetostring_conv,StringType())
到这个时候我打电话
spark.sql("select date_add(Getday(),-1)as stringtime").show()
我收到前一天值作为日期类型,但是当我试图把它转换成字符串避免' - '。这是IntString功能的工作我收到酸洗错误
spark.sql("select IntString(date_add(GetDay(),1))as stringvalue").show()
我怎么能解决这个错误
在此先感谢