Hive 与 Parquet 文件上的 Spark 数据集
Spark Dataset on Hive vs Parquet file
我有 2 个实例用于相同的数据。
- Hive table 以 parquet 格式调用了 myData
- Parquet 格式的 Parquet 文件(不由 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 如何针对 2 种不同的方法计算它?
Hive 用作有关 Parquet 文件的元数据的存储。 Spark 可以利用其中包含的信息来执行有趣的优化。由于后备存储相同,您可能看不出太大差异,但基于 Hive 中元数据的优化 可以 提供优势。
我有 2 个实例用于相同的数据。
- Hive table 以 parquet 格式调用了 myData
- Parquet 格式的 Parquet 文件(不由 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 如何针对 2 种不同的方法计算它?
Hive 用作有关 Parquet 文件的元数据的存储。 Spark 可以利用其中包含的信息来执行有趣的优化。由于后备存储相同,您可能看不出太大差异,但基于 Hive 中元数据的优化 可以 提供优势。