Utilisation d'AWS EMR sur la version 5.2.1 en tant qu'environnement de traitement des données, lorsqu'il s'agit d'un énorme fichier JSON avec un schéma complexe contenant de nombreux champs imbriqués, Hive ne peut pas le traiter et génère une erreur lorsque la limite actuelle de longueur de colonne de 4000 caractères est atteinte.
Erreur lors du traitement de l'instruction : ÉCHEC : Erreur d'exécution, code de retour 1 de org.apache.hadoop.hive.ql.exec.DDLTask. InvalidObjectException(message:Le nom du type de colonne est trop long : [...]
En consultant la documentation, il existe déjà de nombreux problèmes liés à ce problème ou similaires, bien que tous restent non résolus [[1](https://issues.apache.org/jira/browse/HIVE-12274), 2]. Il est recommandé de modifier plusieurs champs du Metastore pour leur attribuer une valeur différente afin de permettre une plus grande longueur pour les définitions de structure.
COLUMNS_V2.TYPE_NAME
TABLE_PARAMS.PARAM_VALUE
SERDE_PARAMS.PARAM_VALUE
SD_PARAMS.PARAM_VALUE
Comme indiqué dans le premier problème, la solution proposée mentionne :
[...] après avoir défini les valeurs, le Metastore doit également être configuré et redémarré."
Cependant, il n'est nulle part spécifié ce qui doit être aussi configuré à côté des valeurs de la base de données.
Ainsi, après avoir mis à jour les champs du Metastore local actuel (mysql dans ce cas) de string
à mediumtext
et redémarré le processus Metastore, je ne parviens toujours pas à progresser car la tentative de chargement du JSON continue d'échouer avec la même erreur.
Est-ce que j'ai omis quelque chose ou est-ce que quelqu'un a trouvé une solution de contournement alternative pour surmonter ce problème ?