我只想访问spark的表,那么在配置单元中应该以哪种格式存储表数据呢(orc或Parquet地板或avro或csv或文本或序列)??为什么?我不打算在任何地方用这张table,我只是用在spark ony上。
ki1q1bka1#
由于这个问题还没有结束,我将试图回答并提供一些论点。自从添加了spark2.3本机orc支持并修复了orc的许多问题之后,例如矢量化读写、 predicate 下推、模式演化、索引和bloom过滤器的使用以及许多其他改进和修复。在spark 2.3之前,更好地使用Parquet地板,它工作得更快,而且没有很多问题。根据hortonworks的介绍,有些复杂的类型在orc中不能使用原生支持,orc原生酸支持也在进行中。如果这些限制是关键,那么使用Parquet地板。orc从一开始就在mr和tez上的hive中得到了更好的支持:矢量化、ppd和acid将在hive中与orc一起工作。你说过它只会在spark中使用,但是谁知道谁也会查询你的表,以及为什么你在问题中提到了hive。分析/bi软件可能使用hive,而不是spark。你提到的序列格式、文本文件和avro甚至无法与orc和parquet相比,因为它们缺少ppd、矢量化和acid等特性。序列是一个可拆分的容器,你不需要用Parquet或兽人,这些也是可拆分的。查看hortonworks演示:orc-improvement-in-apache-spark-2-3-它包含改进细节、与Parquet地板的比较、基准测试和一些限制细节。
1条答案
按热度按时间ki1q1bka1#
由于这个问题还没有结束,我将试图回答并提供一些论点。
自从添加了spark2.3本机orc支持并修复了orc的许多问题之后,例如矢量化读写、 predicate 下推、模式演化、索引和bloom过滤器的使用以及许多其他改进和修复。在spark 2.3之前,更好地使用Parquet地板,它工作得更快,而且没有很多问题。根据hortonworks的介绍,有些复杂的类型在orc中不能使用原生支持,orc原生酸支持也在进行中。如果这些限制是关键,那么使用Parquet地板。
orc从一开始就在mr和tez上的hive中得到了更好的支持:矢量化、ppd和acid将在hive中与orc一起工作。你说过它只会在spark中使用,但是谁知道谁也会查询你的表,以及为什么你在问题中提到了hive。分析/bi软件可能使用hive,而不是spark。
你提到的序列格式、文本文件和avro甚至无法与orc和parquet相比,因为它们缺少ppd、矢量化和acid等特性。序列是一个可拆分的容器,你不需要用Parquet或兽人,这些也是可拆分的。
查看hortonworks演示:orc-improvement-in-apache-spark-2-3-它包含改进细节、与Parquet地板的比较、基准测试和一些限制细节。