众所周知,编写一个大于hdfs块大小的文件不是最佳的,许多非常小的文件也是如此。
但是,在执行 repartition('myColumn)
spark中的操作它将为每个项创建一个分区(假设为一天),其中包含所有记录(作为单个文件),这些记录的大小可能为几gb(假设为20gb),而hdfs块大小配置为256MB。
文件太大真的不好吗?当读回文件时(假设它是一个可拆分的文件,比如带有gzip或zlib压缩的parquet或orc),spark正在创建 >> 1
每个文件的任务,也就是说,这是否意味着我不需要担心指定 maxRecordsPerFile
/文件大小大于hdfs块大小?
1条答案
按热度按时间44u64gxh1#
在hdfs中,使用可拆分格式的单个大文件是一件好事。namenode必须维护较少的文件引用,并且有更多的块需要并行处理。
事实上,20gb在hadoop中还不是很大,因为它可以安装在便宜的闪存驱动器上