- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在对 Hive 可用的存储格式进行一些测试,并使用 Parquet 和 ORC 作为主要选项。我将 ORC 一次包含在默认压缩中,一次包含在 Snappy 中。
我读过许多文档,指出 Parquet 与 ORC 相比在时间/空间复杂度方面更好,但我的测试与我阅读的文档相反。
遵循我的数据的一些细节。
Table A- Text File Format- 2.5GB
Table B - ORC - 652MB
Table C - ORC with Snappy - 802MB
Table D - Parquet - 1.9 GB
就我的 table 的压缩而言,Parquet 最差。
我对上述表格的测试产生了以下结果。
行计数操作
Text Format Cumulative CPU - 123.33 sec
Parquet Format Cumulative CPU - 204.92 sec
ORC Format Cumulative CPU - 119.99 sec
ORC with SNAPPY Cumulative CPU - 107.05 sec
列运算求和
Text Format Cumulative CPU - 127.85 sec
Parquet Format Cumulative CPU - 255.2 sec
ORC Format Cumulative CPU - 120.48 sec
ORC with SNAPPY Cumulative CPU - 98.27 sec
列运算的平均值
Text Format Cumulative CPU - 128.79 sec
Parquet Format Cumulative CPU - 211.73 sec
ORC Format Cumulative CPU - 165.5 sec
ORC with SNAPPY Cumulative CPU - 135.45 sec
使用 where 子句从给定范围中选择 4 列
Text Format Cumulative CPU - 72.48 sec
Parquet Format Cumulative CPU - 136.4 sec
ORC Format Cumulative CPU - 96.63 sec
ORC with SNAPPY Cumulative CPU - 82.05 sec
这是否意味着 ORC 比 Parquet 更快?或者我可以做些什么来让它更好地处理查询响应时间和压缩率?
谢谢!
最佳答案
我想说,这两种格式各有优势。
如果您有高度嵌套的数据,Parquet 可能会更好,因为它像 Google Dremel 那样将其元素存储为树 ( See here )。
如果您的文件结构扁平化,Apache ORC 可能会更好。
据我所知,parquet 还不支持索引。 ORC 带有一个轻量级索引,并且自 Hive 0.14 起,一个额外的 Bloom Filter 可能有助于缩短查询响应时间,尤其是在求和操作方面。
Parquet 默认压缩是 SNAPPY。表 A - B - C 和 D 是否持有相同的数据集?如果是,当它只压缩到 1.9 GB 时,它看起来有些不对劲
关于hadoop - Parquet vs ORC vs ORC with Snappy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32373460/
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 4 个月前关闭。 Improve
我有一个大小为 500 mb 的大文件,需要在一分钟内以最佳压缩比进行压缩。我发现这些算法适合我的使用。 lz4 lz4_hc snappy quicklz blosc 有人可以比较一下这些算法之间的
我使用 sqoop 1.4.6 将数据从 RDBMS 导入到 hdfs,使用 snappyCodec 作为压缩和 avro 作为文件格式。我安装了以下组件 Hadoop 2.8.0 Spark 2.1
当我们在一些处理后使用 Spark 时,我将结果存储到文件中,并使用简单代码使用 snappy 编解码器: data.saveAsTextFile("/data/2014-11-29",classO
无论我做什么,我都无法摆脱这个错误。我知道 snappy 是一个快速的压缩/解压缩库,因此比其他选项更可取。我想使用这个库进行处理。据我所知,Google 在内部将其用于他们的 BigTables、M
我正在使用亚马逊 ec2 ubuntu 11.04 服务器 sudo pip install python-snappy 我也尝试下载包并输入“sudo python setup.py instal
我在使用 MLUtils saveAsLibSVMFile 时遇到了上述错误。尝试了如下各种方法,但没有任何效果。 /* conf.set("spark.io.compression.codec",
我正在尝试从 DSE 5.0.11 运行 spark-shell。我可以成功创建和 RDD,但尝试查询它会产生: Caused by: java.io.IOException: java.lang.
当我尝试编译、测试和运行 junit 测试时出现错误。 我想使用 DataFrames 加载本地 Avro 文件,但出现异常: org.xerial.snappy.SnappyError: [FAIL
我正尝试在 Google Compute 引擎上针对我们位于 Google Cloud Storage 上的压缩数据运行 Hadoop Job。尝试通过 SequenceFileInputFormat
我已经搜索了每个文档,但仍然没有找到为什么有前缀以及以下文件命名约定中的 c000 是什么: 文件:/Users/stephen/p/spark/f1/part-00000-445036f9-7a40
java.lang.RuntimeException: native snappy 库不可用:此版本的 libhadoop 是在没有 snappy 支持的情况下构建的。 在 org.apache.ha
我要安装 parquet for python在 Windows 10 上的 Anaconda 2 安装中使用 pip。 安装时我遇到了描述的错误 here ,安装程序找不到 snappy-c.h。
我无法安装 python-snappy 模块。我首先成功安装了 snappy 模块,但出现以下 python-snappy 错误。 (new-env) C:\Automation\test-autom
我想知道是否有办法增加股票 android 画廊的“活泼”。换句话说,我希望 throw 速度比默认情况下下降得更快。给定的 throw 应该导致更少的滚动并且应该更快地停止。 查看源代码,它看起来就
我在HDFS中有一堆json快照压缩文件。 它们是HADOOP快速压缩的(不是python,请参阅其他SO问题) 并具有嵌套结构。 找不到将它们加载到的方法 进入HIVE(使用json_tuple)?
在我的 Java 代码中,我有 java.nio.ByteBuffer 类型的数据。我必须快速压缩它。通过导入 org.xerial.snappy.Snappy; 来使用 Snappy.compres
根据这个Cloudera post , Snappy 是可拆分的。 For MapReduce, if you need your compressed data to be splittable,
我正在将 KnpSnappyBundle 用于我的 Symfony 项目,并且我正在尝试在我的配置文件中定义一些选项。但是,如果我设置,例如: knp_snappy: pdf:
我正在尝试在 scala 中使用 spark 对一些数据帧进行大量连接。当我尝试获取此处生成的最终数据帧的计数时,出现以下异常。我正在使用 spark-shell 运行代码。 我在启动 spark-s
我是一名优秀的程序员,十分优秀!