Оценка производительности при чтении из представления куста по сравнению с таблицей улья через DataFrames - PullRequest
0 голосов
/ 23 октября 2019

Мы видим, что объединяет несколько таблиц улья. Если я использую spark SQL в pyspark и прочитал это представление, возникнут ли какие-либо проблемы с производительностью по сравнению с чтением непосредственно из таблицы. В кусте у нас было что-то, что называется полным сканированием таблицы, если мы не ограничиваем предложение where точным разделом таблицы. Достаточно ли умен искра для непосредственного чтения таблицы с данными, которые мы ищем, а не для поиска по всему представлению? Пожалуйста, сообщите.

1 Ответ

0 голосов
/ 23 октября 2019

Вы говорите о сокращении разделов. Да, спарк поддерживает, что спарк автоматически пропускает чтение больших данных, когда заданы фильтры секций.

Возможно сокращение секций, когда данные в таблице разбиты на несколько логических секций. Каждый раздел соответствует определенному значению столбца раздела и хранится в виде подкаталога в корневом каталоге таблицы в HDFS. Там, где это применимо, запрашиваются только необходимые разделы (подкаталоги) таблицы, что позволяет избежать ненужного ввода-вывода

. После разбиения данных в последующих запросах может быть пропущено большое количество операций ввода-вывода, если в столбце раздела есть ссылкипредикаты. Например, следующий запрос автоматически находит и загружает файл в peoplePartitioned / age = 20 / и опускает все остальные:

Например, следующий запрос автоматически находит и загружает файл в peoplePartitioned / age = 20 / и пропускаетвсе остальные:

val peoplePartitioned = spark.read.format("orc").load("peoplePartitioned")
peoplePartitioned.createOrReplaceTempView("peoplePartitioned") 
spark.sql("SELECT * FROM peoplePartitioned WHERE age = 20")

предоставляется более подробная информация здесь

Это также можно увидеть в логическом плане, если вы выполните объяснение (True) в своем запросе:

spark.sql("SELECT * FROM peoplePartitioned WHERE age = 20").explain(True)

он покажет, какие разделы читаются искрой

...