Maison > base de données > tutoriel mysql > Pourquoi les UDF Spark SQL provoquent-elles parfois des produits cartésiens au lieu de jointures externes ?

Pourquoi les UDF Spark SQL provoquent-elles parfois des produits cartésiens au lieu de jointures externes ?

Susan Sarandon
Libérer: 2024-12-26 14:13:13
original
590 Les gens l'ont consulté

Why Do Spark SQL UDFs Sometimes Cause Cartesian Products Instead of Outer Joins?

UDF et produits cartésiens

Comprendre le problème

Dans Spark SQL, à l'aide d'un utilisateur personnalisé -Les fonctions définies (UDF) dans les requêtes SQL peuvent parfois conduire à des calculs de produits cartésiens au lieu de la jointure externe complète attendue. Ce problème de performances se pose car l'utilisation des UDF introduit une fonction arbitraire et non déterministe, ce qui rend difficile pour l'optimiseur de déterminer sa valeur sans évaluer toutes les combinaisons d'entrée possibles.

Solution

Contrairement aux UDF, la simple condition d'égalité dans une jointure externe complète (t1.foo = t2.bar) a un comportement prévisible. L'optimiseur peut mélanger les lignes t1 et t2 en fonction respectivement de foo et bar, pour calculer efficacement la jointure.

Prévenir le produit cartésien

À moins de modifier Spark SQL moteur, il n’existe pas de moyen simple de forcer une jointure externe sur le produit cartésien introduit par une UDF. Cette limitation découle de la nature inhérente des UDF, qui nécessitent d'évaluer toutes les combinaisons d'arguments possibles pour déterminer leur valeur.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal