我使用的是ApacheDrill1.8。为了测试海豚,我用了两个Parquet文件。csv大约4gb大,Parquet地板与gz编解码器120mb和第二个Parquet地板与snappy编解码器约250gb大。
由于spark使用snappy作为默认的编解码器,而且snappy的性能应该更快,所以我面临一个问题。
这是我在hadoop上的块大小等文件:
使用snappy编解码器:
使用gz编解码器:
我尝试在snappy codec上查询drill(默认情况下有snappy codec)中的Parquet地板文件的时间大约是18秒。当我试图用同样的查询在gz编解码器上查询钻 parquet 文件的时间大约是8秒。
(这是一个简单的查询,选择5列,按1排序,限制为1)
我现在有点困惑。snappy的i/o不是更高效吗?我是不是在哪里出错了,或者就是这样。如果有人能给我解释,我会非常感激,因为我在网上找不到任何有用的东西。再次感谢你!
1条答案
按热度按时间bn31dyow1#
在你原来的帖子里你说用snappy文件Parquet地板是250gb,你是说250mb吗?
至少对于hdfs,您希望Parquet文件大小(行组)等于块大小。可能有问题,因为块大小为128 mb,文件大小为250 mb。