спарк таблица чтения очень медленная при сравнении с улью - PullRequest
0 голосов
/ 05 марта 2019

У меня есть таблица улья, которая имеет около 2500 столбцов, когда я читаю ее с помощью spark sql следующим образом:

val df = spark.sql("select * from dbName.tableName")

Требуется около 3 часов, чтобы закончить чтение таблицы улья, в то время как я использую Hive SQLчтобы прочитать эту таблицу, мне понадобится всего лишь несколько секунд.

Кто-нибудь, кто знает, почему производительность так сильно отличается между spark sql и hive sql?Большое спасибо!

1 Ответ

0 голосов
/ 05 марта 2019

Предполагается, что вы используете Hive, а не Impala: запрос Hive QL select * from table - это даже не задание «Только карта», а крайний случай, а именно «задача извлечения» создается, а неЗадача MR, которая просто выводит данные как есть, ничего не делая с ними.Кажется, я помню, что отмечал это и в прошлом, когда только начинал.Т.е. в крайнем случае, ему не нужно считать, суммировать, фильтровать и т. Д., И он может делать это следующим образом.

val df ... с другой стороны, строит фрейм данных инеобходимо выполнить с помощью перетасовки, выделения ресурсов (через YARN) и т. д. Мы ничего не знаем об окружающей среде, поскольку вы не указали, какие политики планирования существуют, если Spark Standalone или YARN.

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

...