来自同一csv file
Dask
R Sergeant
.parquet
生成一个带有许多小文件的镶木地板文件(超过200个文件,大小为3MB)并生成fastparquet.write
2 row_group_offset
个文件,520 MB和280 MB)
我们尝试将partition_on
与Dask
关键字一起使用,但没有成功。使用.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中控制镶木地板文件的大小?
答案 0 :(得分:0)
fastparquet,dask的默认镶木地板编写器,每个输入数据块至少会生成一个镶木地板文件,如果使用partition_on
或row_group_offset
,则会更多 - 这些也会对输入数据块执行操作一次一个。默认情况下,您将拥有的块数等于CSV文件的数量。
为了减少数据块的数量,您必须重新调整数据(这可能很昂贵,因此只有在明确要求时才会这样做),例如,
df = df.repartition(npartitions=10)
写作之前此外,如有必要,您可以使用force=True
尝试上述操作。
请注意,在许多情况下,将此重新分区/重新分块操作与设置索引(set_index
)和对数据进行半分类相结合是有意义的,这可以为以后的查询提供更好的性能。