我想獲得一個函數,我在python中添加一個新的列到SQL表中。我無法弄清楚如何將UDF從該函數傳遞到SQL表。我相信這樣做的方式是withColumn,我只是不知道該怎麼做。Apache Zeppelin蟒蛇UDF到SQL
目標是從SQL表中獲取日/周/年,並根據給定數據計算月份。如果我將日/周/年設置爲等於這個值,下面的函數將起作用。
下面是函數:
def getmonth(day,week,year):
x = datetime.strptime('{}_{}_{}{}'.format(day,week,year,-0), '%d_%W_%Y%w')
month = x.strftime('%m')
udf(getmonth)
的SQL ...
DriveConfig = sqlContext.sql("""
SELECT
daymade as day,
weekmade as week,
yearmade as year
FROM datatable2 """)
這是我的表是什麼樣子大概,我想補充一點,一個月列,它是周和年間
day week year 2 42 2017 3 2 2011 1 14 2005 ...
這裏真正的挑戰是,你是不是存儲日期爲日期。而是將所有組件彼此獨立存儲。您可以輕鬆使用DATEADD從發佈的數據中完成此操作。 –