こんにちは。マイクロアドでサーバーサイドエンジニアをしている大澤です。 今回はApache HiveでComplex型(ARRAY, STRUCT, MAP, UNION)を使用している際に発生した問題と解決方法について紹介します。 問題の内容 Hive上に下記の様なテーブルが存在する場合を想定します。 CREATE TABLE example_table ( column1 INT, column2 STRUCT<field:INT>, column3 ARRAY<INT> ); Primitive型は暗黙にNULLが変換されるので下記の様なクエリでは特に問題は起きません。 INSERT INTO example_table SELECT NULL, NAMED_STRUCT("field", 1), ARRAY(1); ただ、Complex型は各カラムの定義がテーブル定義と完全に一致す