我正在尝试了解Spark的评估。
[存在一个表table_name,该表由partition_column分区。这是一个以实木复合地板格式存储的外部表。现在,请考虑以下行
val df = spark.read.table(table_name).filter(partition_column=partition_value)
由于Spark的懒惰评估,它将应用谓词下推并且仅扫描其中partition_column = partition_value的文件夹?还是要读取整个表格并稍后过滤掉?
尝试。explain自己查看结果。
但是实木复合地板的确被推下。
转换,过滤器,映射等都融合在一起。懒惰的方面确实是正确的,尽管您只用一条语句就做到了。
因此答案为是,Spark将生成代码以在源处进行过滤。