Есть работа spark sql:
spark.sql(s"""SELECT *
FROM (
select * from default.table1
where
created_dt between date '2018-01-01' and '2018-01-02'
group by 1,2) table11, -- about 100,000,000 records
default.table2 table22,-- about 600,000,000 records
default.table3 table33,-- about 3000,000,000 records
default.table4 table44-- about 100,000,000 records
WHERE table22.item_id = table11.item_id
AND hot.item_site_id IN (SELECT SITE_ID FROM default.table5)
AND table22.item_id = table33.item_id
AND table22.end_dt = table33.end_dt
AND table22.end_dt >= date '2018-01-01' - interval '180' day
LIMIT 10000""")
.collect()
//.map(t => "Id: " + t(0))
.foreach(println)
В работе таблица 4 Hive
должна быть объединена в item_id
и end_dt
и других полях. в каждой таблице около 100 000 000 записей.
Как оптимизировать объединение? например Если каждая таблица разделена, производительность может быть значительно улучшена? Спасибо