我在同一个数据集上有多个sql select查询,每个sql查询扫描数据的数据集大小约为500GB并给我输出,有没有办法扫描数据一次并在其上运行查询。
下面是我的代码样本:
psr2
这个数据一旦加载就会超过500GB我在Queries:
以下运行val DataRDD = sc.textFile("s3n://<Key>:<Key>@mediationprodlogs/vast_track_event/2016/10/3/*")
在这种格式中我有很多,每个查询扫描所有数据,是否可以扫描一次并给我输出。我知道sparksql只扫描所需的列,即使我的查询使用相同的列可以这样做吗?
答案 0 :(得分:0)
您可以编写像这样的Hive查询: (确保创建一个临时表&#34; DevCount&#34;)
FROM adreqdata
INSERT INTO DevCount
SELECT DeviceId, count(*)
where Network = 9 and EventType = 2
group by DeviceId
INSERT INTO DevCount
select DeviceId,count(EventType) as AllAdreqCount
where EventType = 1 and Network = 0
group by DeviceId