我们在Google存储器中存储着越来越多的日志数据湖。数据按日期(以及其他内容,例如env = production / staging)进行分区。想象一下路径gs://bucket/data/env=*/date=*
我们通过创建可稍后查询以进行处理的数据框来开始应用或分析。问题在于,甚至在我们对它们执行操作之前,创建DF都需要很长时间。换句话说,以下命令需要花费很长时间,因为Spark似乎正在扫描其中的所有文件(并且正如我提到的,数据量一直在增长)。
df = spark.read.load("gs://bucket/data/", schema=data_schema, format="json")
请注意,我们在此处提供架构。同样,在加载数据后,分区工作良好,也就是说,如果按天过滤,则确实可以达到预期的速度。我们不想从一开始就读取特定的分区,我们希望将所有内容都放在一个DF中,然后只读取以后需要的内容。