2016-01-18 4 views
2

Я очень новичок во всем мире технологий «больших данных» и недавно начал читать о Spark. Одной вещью, которая продолжает расти, является SparkSQL, но я постоянно не понимал, что это именно так.Что такое SparkSQL?

Предполагается ли преобразовывать SQL-запросы в MapReduce, которые выполняют операции с данными, которые вы им даете? Но не являются ли файлы данных уже по существу таблицами SQL с точки зрения функциональности?

Или это технология, которая позволяет вам подключаться к базе данных SQL и использовать Spark для запроса? В этом случае, в чем смысл Spark здесь вообще - почему бы не использовать SQL напрямую? Или вы можете использовать ваши структурированные данные SQL в сочетании с плоскими данными?

Опять же, я подчеркиваю, что я очень новичок во всем этом и могу или не могу говорить из моего приклада :). Поэтому, пожалуйста, поправьте меня и прощайте, если увидите, что я явно что-то недопонимаю.

ответ

2

Ваш первый ответ, по сути, правильный, это API в Spark, где вы можете писать запросы в SQL, и они будут преобразованы в параллельное задание Spark (Spark может выполнять более сложные типы операций, чем просто карту и уменьшить). Кадры Spark Data фактически являются оберткой вокруг этого API, это просто альтернативный способ доступа к API, в зависимости от того, удобнее ли вы кодировать SQL или Python/Scala.

+0

Я вижу, имеет смысл сейчас! Я заметил, что Spark, похоже, имеет много избыточности для размещения разных стилей, например, тот факт, что методы filter() и where() являются буквально одним и тем же методом, и единственная причина, по которой where() существует, потому что ее «больше знакомы "людям, которые использовали SQL. Но для того, чтобы быть понятным, SparkSQL не имеет ничего общего с вашими регулярными реляционными базами данных, такими как MySQL и Postgres? Это просто API, который позволяет вам делать ваши запросы очень похожим образом, но на плоских данных, а не на структурированных, правильно? –

+0

Я предполагаю, что это был бы собственный вопрос, но теперь, когда мы на эту тему, возможно тоже :). В чем разница между Hive и SparkSQL? Я думал, что Hive был инструментом, который вы использовали для написания SQL-подобных запросов на плоских данных, так что SparkSQL является конкурентом? Это лучше? –

+0

Да, это не имеет ничего общего с MySQL и Postres, это всего лишь SQL как язык запросов. HIve также использует синтаксис SQL, но он работает на Hadoop, который делает много дискового ввода-вывода, поэтому может быть довольно медленным, в то время как Spark - это в основном встроенная память (если вы делаете это правильно), так это намного быстрее для многих типов вещей , В особенности, например, специальные запросы на ваши данные, SparkSQL должен возвращаться за считанные секунды, хотя для Hive может потребоваться несколько минут. – maxymoo

0

Спарка

Спарк является рамочным или очень большим набором компонентов, используя для масштабируемого, эффективного анализа больших данных.

Например,: Люди загружают петабайт видео на YouTube каждый день. Теперь время, затрачиваемое на чтение одного терабайта с диска, составляет около трех часов со скоростью 100 мегабайт в секунду. Это на самом деле довольно долго (недорогой диск нам не помогает). Поэтому мы сталкиваемся с тем, что одна машина не может обрабатывать или даже хранить все данные. Таким образом, наше решение - распределенные данные по кластеру машин.

DataFrames являются основной абстракцией Спарк.

Мы можем построить кадр данных из текстовых файлов, JSON файлов, Hadoop Distributed File System, Apache Паркетные или Hypertable или Amazon S3 файл, Apache HBase, а затем выполнить некоторые операции, преобразование на нем независимо, где данные поступают от ,

Спарк Sql

Спарк SQL является Спарк модуль для структурированной обработки данных. как описано на странице документации here.

Таким образом, одним из интересов Spark SQL является то, что он позволяет нам запрашивать структурированные данные из многих источников данных с синтаксисом SQL и предлагать многие другие возможности. Я думаю, что по этой причине мы не используем SQL напрямую.

Смежные вопросы