Teknologian jakaminen

Yhteenveto vihjeiden käytöstä kipinässä

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Spark sql:ssä käyttäjät voivat käyttää Join-vinkkiä ehdottaakseen, minkä tyyppistä Join Sparkia tulisi käyttää. Ennen Spark 3.0:aa tuettiin vain liittymisvihjeitä, kuten BROADCAST. Spark 3.0:sta alkaen on lisätty kolme liittymisvinkkiä, MERGE, SHUFFLE_HASH ja SHUFFLE_REPLICATE_NL. Prioriteetti on BROADCAST > MERGE > SHUFFLE_HASH > SHUFFLE_REPLICATE_NL. Jos BROADCAST tai SHUFFLE_HASH lisätään liitoksen molemmille puolille, Spark valitsee kumpi puoli rakennetaan liitostyypin ja molempien puolien koon perusteella.

  1. -- Join Hints for broadcast join
  2. SELECT /*+ BROADCAST(t1) */ * FROM t1 INNER JOIN t2 ON t1.key = t2.key;
  3. SELECT /*+ BROADCASTJOIN (t1) */ * FROM t1 left JOIN t2 ON t1.key = t2.key;
  4. SELECT /*+ MAPJOIN(t2) */ * FROM t1 right JOIN t2 ON t1.key = t2.key;
  5. -- Join Hints for shuffle sort merge join
  6. SELECT /*+ SHUFFLE_MERGE(t1) */ * FROM t1 INNER JOIN t2 ON t1.key = t2.key;
  7. SELECT /*+ MERGEJOIN(t2) */ * FROM t1 INNER JOIN t2 ON t1.key = t2.key;
  8. SELECT /*+ MERGE(t1) */ * FROM t1 INNER JOIN t2 ON t1.key = t2.key;
  9. -- Join Hints for shuffle hash join
  10. SELECT /*+ SHUFFLE_HASH(t1) */ * FROM t1 INNER JOIN t2 ON t1.key = t2.key;
  11. -- Join Hints for shuffle-and-replicate nested loop join
  12. SELECT /*+ SHUFFLE_REPLICATE_NL(t1) */ * FROM t1 INNER JOIN t2 ON t1.key = t2.key;
  13. -- When different join strategy hints are specified on both sides of a join, Spark
  14. -- prioritizes the BROADCAST hint over the MERGE hint over the SHUFFLE_HASH hint
  15. -- over the SHUFFLE_REPLICATE_NL hint.
  16. -- Spark will issue Warning in the following example
  17. -- org.apache.spark.sql.catalyst.analysis.HintErrorLogger: Hint (strategy=merge)
  18. -- is overridden by another hint and will not take effect.
  19. SELECT /*+ BROADCAST(t1), MERGE(t1, t2) */ * FROM t1 INNER JOIN t2 ON t1.key = t2.key;

Käyttösuhde kipinävihjeessä: https://blog.51cto.com/u_15435003/5296344