我们在Dask
(Python)和Drill
(使用Sergeant
数据包的R)中生成parquet
文件。我们已经注意到了一些问题:生成镶木地板文件 - R和Python之间的差异
- 的
Dask
(即fastparquet
)的格式具有_metadata
和_common_metadata
文件而parquet
文件中R \ Drill
没有这些文件,并有parquet.crc
文件,而不是(可删除)。这些parquet
实现之间有什么区别?
我们在Dask
(Python)和Drill
(使用Sergeant
数据包的R)中生成parquet
文件。我们已经注意到了一些问题:生成镶木地板文件 - R和Python之间的差异
Dask
(即fastparquet
)的格式具有_metadata
和_common_metadata
文件而parquet
文件中R \ Drill
没有这些文件,并有parquet.crc
文件,而不是(可删除)。这些parquet
实现之间有什么区别?(只回答:1),请发表不同的问题,使其更容易回答)
_metadata
和_common_metadata
是不需要的镶木集辅助文件,这些文件的人是由星火使用/ Dask/Hive/...来推断数据集所有Parquet文件的元数据,而无需读取所有文件的页脚。与此相反,Apache Drill在每个文件夹中(按需)生成一个包含所有Parquet文件所有页脚的类似文件。只有在数据集上的第一个查询中,所有文件才会被读取,其他查询将只读取缓存所有页脚的文件。
使用_metadata
和_common_metadata
的工具应该能够利用它们来缩短执行时间,但不依赖它们进行操作。如果它们不存在,那么查询引擎就只需要读取所有页脚。
非常正确。另外,fastparquet(dask用来创建文件的库)也可以读取不带'_metadata'的实地数据文件列表,但最初加载元数据会变慢。 Spark用来制作这些文件,但不再做,我相信Hive仍然会。 – mdurant
据我所知,有各种[parquet版本](http://matthewrocklin.com/blog/work/2017/06/28/use-parquet),但很难理解差异 –
您应该发布这三个问题作为堆栈溢出单独的问题。将多个作为单个实例发布很难回答,并将其集成到SO用户界面中。 – xhochy
Thx为输入 - 将这样做 –