web-dev-qa-db-fra.com

Supprimer la colonne dans la table Hive

Je travaille avec la version 0.9 de Hive et j'ai besoin de supprimer les colonnes d'une table Hive. J'ai cherché dans plusieurs manuels de commandes Hive, mais je n'ai trouvé que des commandes à la version 0.14. Est-il possible de supprimer une colonne d'une table Hive dans Hive version 0.9? Quelle est la commande? Merci.

4
Cristina

Nous ne pouvons pas simplement supprimer une colonne d’une table Hive à l’aide de l’instruction ci-dessous, telle que SQL.

ALTER TABLE tbl_name drop column nom_colonne ---- cela ne fonctionnera pas.

Il existe donc un raccourci pour supprimer des colonnes d'une table Hive.

Disons que nous avons une table Hive.

De ce tableau, je veux supprimer la colonne Dob. Vous pouvez utiliser l'instruction ALTER TABLE REPLACE pour supprimer une colonne.

ALTER TABLE test_tbl REPLACE COLUMNS(ID STRING,NAME STRING,AGE STRING);   you have to give the column names which you want to keep in the table
17
sunil

Il n'y a pas de colonne de suppression ou de suppression dans Hive.

Une instruction SELECT peut prendre la spécification de colonne basée sur regex dans les versions Hive antérieures à 0.13.0, ou dans les versions 0.13.0 et suivantes si la propriété de configuration Hive.support.quoted.identifiers est définie sur none.

Cela étant dit, vous pouvez créer une nouvelle table ou vue en utilisant les éléments suivants:

drop table if       exists database.table_name;
create table if not exists database.table_name as
select `(column_to_remove_1|...|column_to_remove_N)?+.+`
    from database.some_table
    where 
    ...
;

Cela créera une table contenant toutes les colonnes de some_table, à l'exception des colonnes nommées column_to_remove_1, ..., à column_to_remove_N. Vous pouvez également choisir de créer une vue à la place.

3
invoketheshell
ALTER TABLE table_name REPLACE COLUMNS ( c1 int, c2 String);

REMARQUE: élimine la colonne de la liste des colonnes. Il conservera les colonnes correspondantes et supprimera les colonnes non mentionnées du schéma de la table.

1
Sujit Fulse

Comme mentionné précédemment, vous ne pouvez pas supprimer une table à l'aide d'une instruction alter.

Changer - remplacer n'est pas garanti pour fonctionner dans tous les cas.

J'ai trouvé la meilleure réponse pour cela ici: https://stackoverflow.com/a/48921280/4385453

0
Abdulhafeth Sartawi

nous ne pouvons pas supprimer la colonne de la table Hive. Mais supprimer une table (si elle est externe) dans Hive et la table de recréation (avec la colonne exclue) ne suppriment pas les données ur. alors que pouvez-vous faire (si vous n’avez pas de structure de table), exécutez cette commande:

show create table database_name.table_name;

Ensuite, vous pouvez le copier et le modifier (avec la colonne éliminée). Vous pouvez ensuite le faire selon l'invocation du shell.

0
Ankit Agrahari

les détails de la table sont empid, nom, département, salaire, adresse. Je veux supprimer la colonne d'adresse. Il suffit d'écrire REMPLACER LES COLONNES comme ci-dessous. Requête jdbc: Hive2: //> modifier les employés de la table de remplacement (empid int, chaîne de nom, chaîne de traitement, salaire int);

0
ravi