我有2个实例用于相同的数据。
考虑以下代码:
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如何针对两种不同的方法进行计算?
答案 0 :(得分:1)
Hive用作有关Parquet文件的元数据的存储。 Spark可以利用其中包含的信息来执行有趣的优化。由于后备存储是相同的,因此您可能不会看到太大的区别,但是基于Hive 中元数据的优化可以提供优势。