Catégorisation de données avec plusieurs conditions
Lorsque vous travaillez avec des ensembles de données complexes, vous devrez peut-être catégoriser les données en fonction de plusieurs conditions. L'instruction CASE dans Hive offre un moyen flexible de gérer ces scénarios.
Considérons un exemple où nous avons une table de données de ventes et que nous voulons catégoriser chaque vente en fonction de la catégorie de produit, du montant de la vente et de la région du client.
SELECT
sale_id,
product_category,
sale_amount,
customer_region,
CASE WHEN product_category = 'Electronics' AND sale_amount >= 500 THEN 'High-Value Electronics'
WHEN product_category = 'Electronics' AND sale_amount < 500 THEN 'Low-Value Electronics'
WHEN product_category = 'Apparel' AND customer_region = 'North' THEN 'North Region Apparel'
WHEN product_category = 'Apparel' AND customer_region = 'South' THEN 'South Region Apparel'
WHEN product_category = 'Furniture' THEN 'Furniture'
ELSE 'Other'
END AS sale_category
FROM
sales_table;
Dans cet exemple, l'instruction CASE évalue plusieurs conditions pour catégoriser chaque vente. Les catégories sont les suivantes :
- High-Value Electronics (Ventes d'électronique de grande valeur) : Ventes d'électronique d'un montant supérieur ou égal à 500 $.
- Low-Value Electronics (Ventes d'électronique de petite valeur) : Ventes d'électronique d'un montant inférieur à 500 $.
- North Region Apparel (Vêtements pour la région Nord) : Ventes de vêtements pour les clients de la région Nord.
- South Region Apparel (Vêtements pour la région Sud) : Ventes de vêtements pour les clients de la région Sud.
- Furniture (Meubles) : Toutes les ventes de meubles.
- Other (Autres) : Toutes les ventes qui ne correspondent pas aux catégories ci-dessus.
En utilisant l'instruction CASE avec plusieurs conditions, vous pouvez créer une logique complexe de catégorisation de données pour répondre à vos besoins métier spécifiques.
Vous pouvez améliorer encore l'instruction CASE en la combinant avec d'autres fonctions Hive, telles que COALESCE
et IFNULL
, pour gérer les valeurs nulles et offrir des capacités de traitement de données plus robustes.
SELECT
sale_id,
product_category,
COALESCE(sale_amount, 0) AS sale_amount,
COALESCE(customer_region, 'Unknown') AS customer_region,
CASE WHEN product_category = 'Electronics' AND sale_amount >= 500 THEN 'High-Value Electronics'
WHEN product_category = 'Electronics' AND sale_amount < 500 THEN 'Low-Value Electronics'
WHEN product_category = 'Apparel' AND customer_region = 'North' THEN 'North Region Apparel'
WHEN product_category = 'Apparel' AND customer_region = 'South' THEN 'South Region Apparel'
WHEN product_category = 'Furniture' THEN 'Furniture'
ELSE 'Other'
END AS sale_category
FROM
sales_table;
Dans cet exemple mis à jour, la fonction COALESCE
est utilisée pour gérer les valeurs nulles dans les colonnes sale_amount
et customer_region
, garantissant que l'instruction CASE puisse évaluer correctement tous les enregistrements.
En maîtrisant l'instruction CASE et son utilisation en combinaison avec d'autres fonctions Hive, vous pouvez créer des capacités puissantes de catégorisation et d'analyse de données pour répondre aux besoins de votre entreprise.