2016-12-12 4 views
1

与えられた月には、12月に次の行を出力します。組み込みのHive UDFでこれを実現する方法はありますか?ハイブ:指定した月の曜日のリストを取得します

1日 - 2016
2日 - 2016



答え自分を発見 30 - 12月 - 2016
31 - 12月 - 2016

(デュアルはORACLEのようにダミーのテーブルです)。

は '2016年11月1日'(DATE_ADDを選択、cntr-1)から (select explode(num)AS cntr from (select array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) 、16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31)numからdual)temp1 )temp2 ここでcntr < =日(last_day ( '2016-11-01'));

+0

質問をより綿密に更新してください。あなたは何をしているのですか、あなたはアウトプットとして何を求めていますか? – Farooque

+0

上記の行を出力できるHiveクエリが必要です – Kumar

+0

必要なのは、指定した月の日付のリストです。別々の行にあります。 – Kumar

答えて

0

倉庫に暦日のディメンションdate_dimテーブルが必要です。この表は、ディメンションとして、また自分のような状況で使用するために、すべてのデータウェアハウスに配置する必要があります。このテーブルを作成して読み込むことをお勧めします。 date_dimクエリに必要な行を生成するには、年と月でフィルタリングします。 たとえば、http://www.kimballgroup.com/data-warehouse-business-intelligence-resources/books/microsoft-data-warehouse-dw-toolkit/からダウンロードするか、他のソースを見つけたり、自分で作成したりできます。ハイブのhttps://www.codeproject.com/articles/647950/create-and-populate-date-dimension-for-data-wareho

+0

概要を参照してください – Kumar

0

使用date_format()
もdate_dim生成については、この記事を参照してください。あなたのdate_field変数を仮定します。

select date_format(date_field,'dd-MMM-yyyy') from table1; 

ここで、table1はテーブル名です。

関連する問題