使用したキーワードは、ハイブを変換します

の役割を変換

情報の書き込み機能は、スクリプトから呼び出される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や他のシステムは、ファイルを追加することなく、直接使用することができます。

おすすめ

転載: www.cnblogs.com/s1023/p/12585320.html