の役割を変換
情報の書き込み機能は、スクリプトから呼び出されるSQLに含まれていないHIVEの機能を達成するのに適したが、UDFを記述されていない提供TRANSFORMキーワードのハイブ
実現
需要:平日タイプtimetampにデータを変換します
(1)書き込みPythonスクリプト
我々/root/weekday.py
#!/ binに/ Pythonの インポートsysの インポート日時 sys.stdinを内の行のために: ライン= line.strip() 映画、レート、TS、UID = line.split( '\ t'の) 平日= datetime.datetime.fromtimestamp(フロート(TS))。isoweekday() 印刷「\ t'.join([映画、レート、STR(平日)、UID])
のクラスパスハイブに追加(2)Pythonスクリプト
ADDファイル/root/weekday.py。
(3)試験データが変換解析しました
SELECT (映画、レート、TS、UID)をTRANSFORM 'のpython weekday.py'を使用して AS(MOVIEID、レート、平日、ユーザーID)を t_movierate FROM LIMIT 10 ;
最終結果を格納するテーブルの(4)定義
TABLE IF NOTはt_rate_weekday(EXISTS CREATE MOVIEID int型、 レートint型、 平日int型、 ユーザーID INT ) ROW形式は区切り のフィールドがBY '\ T'を終了します 。
(5)データをロードします
INSERT INTOはt_rate_weekday SELECT (映画、レート、TS、UID)TRANSFORM 使用した'パイソンweekday.py' AS(MOVIEID、レート、平日、ユーザーID) t_movierate FROM 。
注:スクリプトはPythonのではなく、awkは、組み込みコマンドのsedや他のシステムは、ファイルを追加することなく、直接使用することができます。