假设hdfs上有一个文件夹 /usr/data/
,其中包含了大量按日期组织的日期数据,如 /usr/data/date=x
. 我想在齐柏林飞艇笔记本上加载一周的数据,所以我所做的是
val data = spark.read.parque("/usr/data/").filter("DATE>='2020-06-05' && 'DATE<=2020-06-12'")
但是,由于 /usr/data/
太大,无法加载,有没有方法只加载一周的数据,而不先加载整个文件夹?谢谢
假设hdfs上有一个文件夹 /usr/data/
,其中包含了大量按日期组织的日期数据,如 /usr/data/date=x
. 我想在齐柏林飞艇笔记本上加载一周的数据,所以我所做的是
val data = spark.read.parque("/usr/data/").filter("DATE>='2020-06-05' && 'DATE<=2020-06-12'")
但是,由于 /usr/data/
太大,无法加载,有没有方法只加载一周的数据,而不先加载整个文件夹?谢谢
1条答案
按热度按时间neekobn81#
spark优化器会处理它,不会加载整个文件夹。
因为你的数据是在
date
column spark无法从中加载所有数据/usr/data
相反,只加载过滤器查询中的匹配目录。您可以检查执行计划以查看目录(在
PartitionFilters
节)使用.explain()
.Example:
```val data = spark.read.parquet("/usr/data/").filter(col("date">="2020-06-05" &&col("date") <= "2020-06-12")
data.explain()