私はPythonでSQLテーブルに新しい列を追加するために書いた関数を取得しようとしています。私はその関数からSQLテーブルにUDFを渡す方法を理解できません。私はこれを行う方法はの列と信じて、私はちょうど方法を知らない。Apache Zeppelin Python 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を使って、あなたが投稿したデータからこれを達成することができます。 –