我知道Spark在转换步骤之前不会对数据帧执行任何操作,但我想知道所有转换步骤的物理位置是否重要
我想知道如何读入一个相当大的文件,我只需要很少的文件。假设我有一个1 TB的文件,但我可能只需要读取不到1 GB的文件。如果我在代码中有一行代码,在脚本顶部使用df.filter(df['updatedtime'] > '2018-01-01')
之类的基本内容来过滤数据帧,这可能会减少读取的数据量并强制谓词下推,对吗
如果过滤数据的代码行要过很久才会出现,那么这种情况会不会仍然强制谓词下推并减少数据读取?或者这是一个试验和错误的情况下,我需要测试自己
Tags:
在理想情况下,这不重要。这是
RDD
API的主要优势。优化器应该能够重新安排执行计划以实现最佳性能在实践中,不同版本的某些操作可能会引入分析障碍或禁用下推和/或partition pruning
因此,如果您有疑问,您应该始终检查执行计划,以确认是否应用了预期的优化
相关问题 更多 >
编程相关推荐