Hive与Parquet文件上的Spark数据集

时间:2018-07-05 11:50:37

标签: scala apache-spark parquet

我有2个实例用于相同的数据。

  1. 以拼花格式显示的名为myData的配置表
  2. 实木复合地板格式的实木复合地板文件(不受Hive管理)

考虑以下代码:

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如何针对两种不同的方法进行计算?

1 个答案:

答案 0 :(得分:1)

Hive用作有关Parquet文件的元数据的存储。 Spark可以利用其中包含的信息来执行有趣的优化。由于后备存储是相同的,因此您可能不会看到太大的区别,但是基于Hive 中元数据的优化可以提供优势。