我正在尝试将datefromparts(df.year,df.month,1)翻译成pySpark。
但是我找不到在Spark中执行此功能的功能。有人有想法吗?谢谢。
答案 0 :(得分:0)
这个怎么样?
import datetime
from pyspark.sql.types import DateType
def datefromparts(year, month, day):
return datetime.datetime(year, month, day).date()
# 'spark' is a SparkSession object
spark.udf.register('datefromparts', datefromparts, DateType())
spark.sql("SELECT datefromparts(2017, 4, 1)").show()
答案 1 :(得分:0)
我编写了自己的函数来解决问题。
# This function creates a date (month/day/year)
funCreateDate = udf (lambda year, month: '{}/{}/{}'.format(month,1,year),DateType())
# This function converts a date (month/day/year) into (year-month-day):
func = udf (lambda x: datetime.strptime(x, '%m/%d/%Y'), DateType())