【Hive】Hive / HiveQL ~ データをクリーニングする ~

■ はじめに

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