Набор данных Spark в файле Hive vs Parquet - PullRequest
0 голосов
/ 05 июля 2018

У меня есть 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")

Мой вопрос: что лучше с точки зрения производительности и количества отсканированных данных? Как спарк вычисляет это для 2 разных подходов?

1 Ответ

0 голосов
/ 05 июля 2018

Hive служит хранилищем метаданных о файле Parquet. Spark может использовать содержащуюся в нем информацию для выполнения интересных оптимизаций. Поскольку резервное хранилище одинаковое, вы, вероятно, не увидите большой разницы, но оптимизация на основе метаданных в Hive может дать преимущество.

...