Как сохранить поток входных данных в рабочей структуре данных для sql запросов в Spark? - PullRequest
0 голосов
/ 23 апреля 2020

Я новичок в слове bigdata. Моя цель - поддерживать поток входных данных в неких структурах данных для выполнения запросов и операций агрегации с ними. Имея в качестве входных данных непрерывную потоковую передачу данных через структурированную потоковую передачу искры, я сохраняю ее в DataFrame. Мои вопросы:

  • является ли DataFrame изменчивой структурой данных?
  • В случае сбоя программы поддерживается ли DataFrame?
  • Распределяется ли DataFrame на различные узлы кластера или он хранится на узле, который выполняет код?
  • Можно ли создать индекс на датафрейме для ускорения ответа на некоторые запросы?

1 Ответ

0 голосов
/ 23 апреля 2020

Если вы планируете использовать Spark 2.4+, то go с фреймами данных

  • Да, фреймы данных являются нестабильными, они заканчиваются sh после завершения работы Spark, но вы можете сохранить их на диск как файлы паркета и запросить их позже через SPARK / HIVE ro любой инструмент, который может прочитать формат файла партера.
  • В случае сбоя программы, DataFrame не подлежит восстановлению, если вам не удастся сохранить их до cra sh, который вы можете прочитать позже, когда ваше задание Spark снова будет запущено.
  • Фрейм данных распределен. Структура данных используется и понимается Spark. Так что да, он разделен / разделен между узлами Spark.
  • Во фрейме данных есть разделы для настройки производительности запроса и минимизации перетасовки данных.

Помимо вышеуказанных точек, Spark имеет встроенный механизм проверки наведения указателей чтобы убедиться, что нет потери данных, когда ваша работа падает. Деталь до c можно найти на Spark

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