Spark数据集在Hive上与Parquet文件的比较

5

我有两个实例存储相同的数据。

  1. 名为myData的Hive表,以parquet格式存储
  2. 一个未被Hive管理、以parquet格式存储的Parquet文件

请考虑以下代码:

val myCoolDataSet = spark
    .sql("select * from myData")
    .select("col1", "col2")
    .as[MyDataSet]
    .filter(x => x.col1 == "Dummy")

而这个:

val myCoolDataSet = spark
    .read
    .parquet("path_to_file")
    .select("col1", "col2")
    .as[MyDataSet]
    .filter(x => x.col1 == "Dummy")

我的问题是在性能和扫描数据量方面,哪个更好?Spark如何计算这两种不同的方法?


你发现了区别吗? - Chogg
1个回答

10

Hive作为Parquet文件的元数据存储,Spark可以利用其中包含的信息进行有趣的优化。由于后台存储是相同的,您可能不会看到太大的差异,但基于Hive中元数据的优化可能会给您带来优势。


1
总结得很好。 - Topde

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接