首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Parquet上的火花与蜂巢上的火花(Parquet格式)

Parquet上的火花与蜂巢上的火花(Parquet格式)
EN

Stack Overflow用户
提问于 2017-11-09 17:21:50
回答 2查看 3.3K关注 0票数 2

我们的用例是一个狭窄的表(15个字段),但是针对整个数据集(数十亿行)的处理很大。我想知道是什么组合提供了更好的性能:

环境: CDH5.8 / spark 2.0

  1. 蜂巢表上的火花(作为拼花的格式)
  2. 在行文件上火花(拼花)
EN

回答 2

Stack Overflow用户

发布于 2017-11-09 18:58:29

如果没有特定产品和usecase的附加上下文,我会投票支持Hive表上的SparkSql,原因有二:

  1. 由于databricks在sparksql中编写了不同的优化,因此可能比核心星火更好,这是一种更高的节约率,并提供了优化代码的能力(阅读Project )。在某些情况下,手工编写火花核心代码会更好,但它需要程序员对内部的深入理解。此外,闪烁有时是有限的,不允许您控制低级别的机制,但您总是可以回过头来使用核心的rdd。
  2. 蜂巢而不是档案-我想是带有外部亚稳态的蜂巢。Metastore保存“表”分区的定义(在文件中可能是某个目录)。这是一个最重要的部分,为良好的性能。也就是说,当处理文件时,spark将需要加载此信息(这可能很费时--例如,s3列表操作非常慢)。因此,亚稳态允许火花以简单和快速的方式获取这一信息。
票数 3
EN

Stack Overflow用户

发布于 2017-11-10 06:34:36

这里只有两个选择。在文件上火花,或在蜂巢上燃烧。SparkSQL对两者都有效,您应该更喜欢使用Dataset API,而不是RDD。

如果您可以自己定义Dataset模式,那么Spark读取原始HDFS文件将更快,因为您绕过了Hive Metastore的额外跳转。

几年前,当我自己做一个简单的测试时(使用Spark1.3),我注意到将100000行作为CSV文件提取比使用同一个LIMIT的SparkSQL Hive查询快几个数量级

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47207986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档