Maison >développement back-end >tutoriel php >Cinq choses que vous devez apprendre pour éviter les pièges lorsque vous débutez avec les partitions HIVE
Cet article vous apporte les cinq connaissances majeures que vous devez apprendre pour éviter les pièges lorsque vous débutez avec le partitionnement HIVE. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Étapes de démonstration :
1. Créer une table de partition étudiante
95001, Li Yong ,Male,20,CS
95002, Liu Chen, Femme, 19 ans, IS
95004, Zhang Li, Homme, 19 ans, IS
95005, Liu Gang, homme, 18 ans, MA95006, Sun Qing, homme, 23 ans, CS
Créer et voir si cela réussit
Ajouter du contenu
(1)charger
--分区表创建create table t_students(id int,name string,sex string) partitioned by (age int,class string)row format delimited fields terminated by ',' ;
(2)insert
Insert in Hive est principalement utilisé en conjonction avec l'instruction de requête select.hive> set hive.cli.print.header=true;hive> select * from t_students;OK t_students.id t_students.name t_students.sex t_students.age t_students.class
Après l'exécution, vous pouvez afficher la table SDS de métadonnées. informations
--静态分区load data local inpath '/root/logs/students.txt' into table t_students partition (age=19,class='MA');
--动态分区set hive.exec.dynamic.partition=true;set hive.exec.dynamic.partition.mode=nonstrict;insert overwrite table t_students partition (age,class) select * from t_student;
hive bucketing
--使用同样的数据,再次追加insert一次数据 hive> insert into table t_students partition (age,class) select * from t_student;Le bucketing est une division plus fine des partitions relatives. Le bucketing divise l'intégralité du contenu des données en compartiments en fonction de la valeur de hachage d'un certain attribut de colonne. Pour diviser l'attribut de nom en trois compartiments, la valeur de hachage de la valeur de l'attribut de nom est modulée par 3 et les données sont divisées en compartiments en fonction. le résultat modulo. Par exemple, les enregistrements de données avec un résultat modulo de 0 sont stockés dans un fichier, les données avec une valeur modulo de 1 sont stockées dans un fichier et les enregistrements de données avec une valeur modulo de 2 sont stockés dans un fichier.
Remarque :
Tout d'abord, exécutez la commande hive.enforce.bucketiong=true avant le bucketing ; Deuxièmement, utilisez le mot-clé clustered by pour spécifier le nom de la colonne sur laquelle la partition est basée, et spécifiez également le nombre de partitions. à diviser en. Bucket, spécifié ici est divisé en 3 buckets.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!