背景:使用spark.sql("selelct * from * where *")
从 hive 中读取数据,数据量在百 GB 左右,数据量太大导致处理时间不可接受,主要是数据量导致 persist 时耗时太多.
问题:spark sql 执行 SQL 语句时是先把数据全部从 hive 中加载到内存 /磁盘中然后再执行 SQL 语句吗?因为 SQL 语句加不加 where 限制在 persist 时的数据量都是一样的.如何使 spark 在读 hive 时就只读取满足筛选条件的数据?
1
scalaer 2018-12-26 14:41:50 +08:00
无法实现你说的。
不过你可以根据时间将数据分区, 减少查询的数据. |