τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Στο spark sql, οι χρήστες μπορούν να χρησιμοποιήσουν το Join hint για να προτείνουν ποιον τύπο Join Spark πρέπει να χρησιμοποιήσει. Πριν από το Spark 3.0, υποστηρίζονταν μόνο υποδείξεις Συμμετοχής, όπως ΕΚΠΟΜΠΗ. Ξεκινώντας από το Spark 3.0, έχουν προστεθεί τρεις Συμβουλές Συμμετοχής, MERGE, SHUFFLE_HASH και SHUFFLE_REPLICATE_NL. Η προτεραιότητα είναι BROADCAST > MERGE > SHUFFLE_HASH > SHUFFLE_REPLICATE_NL. Εάν προστεθούν BROADCAST ή SHUFFLE_HASH και στις δύο πλευρές του Join, το Spark θα επιλέξει ποια πλευρά θα χτίσει με βάση τον JoinType και το μέγεθος και των δύο πλευρών.
- -- Join Hints for broadcast join
- SELECT /*+ BROADCAST(t1) */ * FROM t1 INNER JOIN t2 ON t1.key = t2.key;
- SELECT /*+ BROADCASTJOIN (t1) */ * FROM t1 left JOIN t2 ON t1.key = t2.key;
- SELECT /*+ MAPJOIN(t2) */ * FROM t1 right JOIN t2 ON t1.key = t2.key;
-
- -- Join Hints for shuffle sort merge join
- SELECT /*+ SHUFFLE_MERGE(t1) */ * FROM t1 INNER JOIN t2 ON t1.key = t2.key;
- SELECT /*+ MERGEJOIN(t2) */ * FROM t1 INNER JOIN t2 ON t1.key = t2.key;
- SELECT /*+ MERGE(t1) */ * FROM t1 INNER JOIN t2 ON t1.key = t2.key;
-
- -- Join Hints for shuffle hash join
- SELECT /*+ SHUFFLE_HASH(t1) */ * FROM t1 INNER JOIN t2 ON t1.key = t2.key;
-
- -- Join Hints for shuffle-and-replicate nested loop join
- SELECT /*+ SHUFFLE_REPLICATE_NL(t1) */ * FROM t1 INNER JOIN t2 ON t1.key = t2.key;
-
- -- When different join strategy hints are specified on both sides of a join, Spark
- -- prioritizes the BROADCAST hint over the MERGE hint over the SHUFFLE_HASH hint
- -- over the SHUFFLE_REPLICATE_NL hint.
- -- Spark will issue Warning in the following example
- -- org.apache.spark.sql.catalyst.analysis.HintErrorLogger: Hint (strategy=merge)
- -- is overridden by another hint and will not take effect.
- SELECT /*+ BROADCAST(t1), MERGE(t1, t2) */ * FROM t1 INNER JOIN t2 ON t1.key = t2.key;
Σχέση χρήσης στο spark hint: https://blog.51cto.com/u_15435003/5296344