Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le conseiller Apache Spark analyse les commandes et le code exécutés par Apache Spark et affiche des conseils en temps réel pour les exécutions de notebook. Le conseiller Apache Spark a des modèles intégrés pour aider les utilisateurs à éviter les erreurs courantes. Il propose des recommandations pour l’optimisation du code, effectue une analyse des erreurs et localise la cause racine des défaillances.
Conseils intégrés
Le conseiller Spark, un outil intégré à Impulse, fournit des modèles intégrés pour détecter et résoudre les problèmes dans les applications Apache Spark. Cet article explique certains des modèles inclus dans l’outil.
Vous pouvez ouvrir le volet Exécutions récentes en fonction du type de conseil dont vous avez besoin.
Peut retourner des résultats incohérents lors de l’utilisation de « randomSplit »
Des résultats incohérents ou incorrects peuvent être retournés lors de l’utilisation de la méthode randomSplit . Utilisez la mise en cache Apache Spark (RDD) avant d’utiliser la méthode randomSplit().
La méthode randomSplit() équivaut à effectuer des exemples() sur votre trame de données plusieurs fois. Dans chaque échantillon, on ravitaille, partitionne et trie votre tableau de données à l'intérieur des partitions. La distribution des données entre les partitions et l’ordre de tri est importante pour randomSplit() et sample(). Si l'un ou l'autre change lors d'une nouvelle récupération de données, il peut y avoir des doublons ou des valeurs manquantes dans les différentes divisions. Et le même échantillon utilisant la même valeur de départ peut produire des résultats différents.
Ces incohérences peuvent ne pas se produire sur chaque exécution, mais pour les éliminer complètement, mettez en cache votre trame de données, repartitionnez sur une ou plusieurs colonnes ou appliquez des fonctions d’agrégation telles que groupBy.
Le nom de table/vue est déjà utilisé
Une vue existe déjà avec le même nom que la table créée, ou une table existe déjà avec le même nom que la vue créée. Lorsque ce nom est utilisé dans les requêtes ou les applications, seule la vue est retournée, indépendamment de l'ordre de création. Pour éviter les conflits, renommez soit la table, soit la vue.
Impossible de reconnaître un indicateur
spark.sql("SELECT /*+ unknownHint */ * FROM t1")
Impossible de trouver un ou plusieurs noms de relation spécifiés
Impossible de trouver la ou les relations spécifiées dans l’indicateur. Vérifiez que les relations sont correctement orthographiées et accessibles dans l’étendue de l’indicateur.
spark.sql("SELECT /*+ BROADCAST(unknownTable) */ * FROM t1 INNER JOIN t2 ON t1.str = t2.str")
Un indicateur dans la requête empêche l’application d’un autre indicateur
La requête sélectionnée contient un indicateur qui empêche l’application d’un autre indicateur.
spark.sql("SELECT /*+ BROADCAST(t1), MERGE(t1, t2) */ * FROM t1 INNER JOIN t2 ON t1.str = t2.str")
Activez « spark.advise.divisionExprConvertRule . enable » pour réduire la propagation des erreurs d’arrondi
Cette requête contient l’expression avec un type double. Nous vous recommandons d’activer la configuration « spark.advise.divisionExprConvertRule.enable », qui peut aider à diminuer les expressions de division et à limiter la propagation des erreurs d’arrondi.
"t.a/t.b/t.c" convert into "t.a/(t.b * t.c)"
Activez « spark.advise.nonEqJoinConvertRule . enable » pour améliorer les performances des requêtes
Cette requête contient une jointure chronophage en raison d'une condition OU dans la requête. Nous vous recommandons d’activer la configuration « spark.advise.nonEqJoinConvertRule.enable », qui peut vous aider à convertir la jointure déclenchée par la condition « Or » en SMJ ou BHJ pour accélérer cette requête.
Basculement de l'exécution vers Spark sur base JVM
Lorsque le moteur d’exécution natif est activé, et que le plan d’exécution d’une cellule de notebook contient des opérateurs qui ne peuvent pas être déchargés sur le chemin natif, Spark Advisor affiche une alerte en temps réel dans la sortie de la cellule. L’alerte indique que l’exécution est renvoyée à Spark basée sur JVM et vous aide à identifier la cause, comme les opérateurs non pris en charge, les types de données ou les configurations. Pour résoudre le retour, passez en revue le plan de requête pour les opérations non prises en charge et ajustez votre logique pour utiliser des opérateurs pris en charge, ou vérifiez que spark.native.enabled est correctement configuré pour votre notebook ou votre travail Spark.
Expérience utilisateur
Le conseiller Apache Spark affiche les conseils, notamment les informations, les avertissements et les erreurs, à la sortie de cellule Notebook en temps réel.
Paramètre Spark Advisor
Le paramètre Du conseiller Spark vous permet de choisir d’afficher ou de masquer des types spécifiques de conseils Spark en fonction de vos besoins. En outre, vous avez la possibilité d’activer ou de désactiver le Conseiller Spark pour vos notebooks au sein d’un espace de travail, en fonction de vos préférences.
Vous pouvez accéder aux paramètres Spark Advisor au niveau du notebook Fabric pour bénéficier de ses avantages et garantir une expérience de création de notebook productive.