■ はじめに
HiveQL でデータをクリーニングすることをやったので メモっとく。
目次
【1】CASE文を使って値を置き換える 【2】日時・日付形式を変更する
【1】CASE文を使って値を置き換える
* CASE文に関する詳細は、以下の関連記事を参照のこと
Hive / HiveQL ~ CASE文 ~
https://dk521123.hatenablog.com/entry/2021/06/19/073248
サンプル
-- id に 'NULL', 'N/A', '' だった場合、NULLを設定 SELECT CASE WHEN UPPER(TRIM(id)) IN ('NULL', 'N/A', '') THEN NULL ELSE TRIM(id) END AS id FROM person;
【2】日時・日付形式を変更する
* 以下を駆使して、行う + UNIX_TIMESTAMP() + FROM_UNIXTIME() * 日時に関する処理の詳細は、以下の関連記事を参照のこと
Hive / HiveQL ~ 日時操作編 ~
https://dk521123.hatenablog.com/entry/2021/02/11/233633
サンプル
SELECT from_unixtime(unix_timestamp('2016-06-01 13:23:45.123', 'yyyy-MM-dd HH:mm:ss.SSS'),'yyyy/MM/dd') AS birth_day FROM customers;
参考文献
https://rfs.jp/sb/sql/s04/03-16.html
http://hadooptutorial.info/hive-date-functions/
関連記事
Hive / HiveQL ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2019/11/25/235219
Hive / HiveQL ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/06/02/183823
Hive / HiveQL ~ HiveQL関数編 ~
https://dk521123.hatenablog.com/entry/2020/03/10/224640
Hive / HiveQL ~ CASE文 ~
https://dk521123.hatenablog.com/entry/2021/06/19/073248
Hive / HiveQL ~ 日時操作編 ~
https://dk521123.hatenablog.com/entry/2021/02/11/233633
Hive / HiveQL ~ あれこれ編 ~
https://dk521123.hatenablog.com/entry/2020/03/04/225943
Hive に関するトラブルシューティング
https://dk521123.hatenablog.com/entry/2020/05/28/175428