如何从hdfs上包含大量数据的文件夹中加载几天的数据?

j8ag8udp  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(300)

假设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/ 太大,无法加载,有没有方法只加载一周的数据,而不先加载整个文件夹?谢谢

neekobn8

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()

相关问题