Parquet子文件的数量

时间:2017-08-01 12:17:03

标签: r parquet dask

来自同一csv file Dask R Sergeant .parquet生成一个带有许多小文件的镶木地板文件(超过200个文件,大小为3MB)并生成fastparquet.write 2 row_group_offset个文件,520 MB和280 MB) 我们尝试将partition_onDask关键字一起使用,但没有成功。使用.parquet中的<?php do_action( 'maxwell_before_footer' ); ?> <div id="footer" class="footer-wrap"> <footer id="colophon" class="site-footer container clearfix" role="contentinfo"> <?php do_action( 'maxwell_footer_menu' ); ?> <div id="footer-text" class="site-info"> <?php do_action( 'maxwell_footer_text' ); ?> </div><!-- .site-info --> </footer><!-- #colophon --> </div> 添加了一组分区,但在每个分区中有许多子ValueError: Shape must be rank 2 but is rank 3 for 'MatMul' (op: 'MatMul') with input shapes: [?,23,1], [512,2]个文件(数百甚至数千个)。

我们如何在Python和R中控制镶木地板文件的大小?

1 个答案:

答案 0 :(得分:0)

fastparquet,dask的默认镶木地板编写器,每个输入数据块至少会生成一个镶木地板文件,如果使用partition_onrow_group_offset,则会更多 - 这些也会对输入数据块执行操作一次一个。默认情况下,您将拥有的块数等于CSV文件的数量。

为了减少数据块的数量,您必须重新调整数据(这可能很昂贵,因此只有在明确要求时才会这样做),例如,

df = df.repartition(npartitions=10)
写作之前

此外,如有必要,您可以使用force=True尝试上述操作。

请注意,在许多情况下,将此重新分区/重新分块操作与设置索引(set_index)和对数据进行半分类相结合是有意义的,这可以为以后的查询提供更好的性能。