Pra*_*arg 1 apache-spark apache-spark-sql pyspark aws-glue-data-catalog
我试图向尺寸较小的表提供广播提示,但物理计划仍然向我显示 SortMergeJoin。
spark.sql('select /*+ BROADCAST(pratik_test_temp.crosswalk2016) */ * from pratik_test_staging.crosswalk2016 t join pratik_test_temp.crosswalk2016 c on t.serial_id = c.serial_id').explain()
笔记 :
created_date[分区列] 而不是serial_id作为我的加入条件时,它向我显示广播加入 -spark.sql('select /*+ BROADCAST(pratik_test_temp.crosswalk2016) */ * from pratik_test_staging.crosswalk2016 t join pratik_test_temp.crosswalk2016 c on t.created_date = c.created_date').explain()
为什么使用 AWS Glue Catalog 作为我的元存储时 Spark 行为很奇怪?
在BROADCAST提示中,我们需要传递alias name of the table(因为您在 sql 语句中保留了别名)。
尝试用 /*+ BROADCAST(c) */*而不是/*+ BROADCAST(pratik_test_temp.crosswalk2016) */ *
spark.sql('select /*+ BROADCAST(c) */ * from pratik_test_staging.crosswalk2016 t join pratik_test_temp.crosswalk2016 c on t.serial_id = c.serial_id').explain()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2149 次 |
| 最近记录: |