Когда мы должны go для Spark- sql, а когда go для Spark RDD - PullRequest
0 голосов
/ 29 мая 2020

В каком сценарии мы должны предпочесть Spark RDD для написания решения и в каком сценарии мы должны выбрать go для Spark- sql. Я знаю, что spark- sql дает лучшую производительность и лучше всего работает со структурными и полуструктурными данными. Но какие еще факторы нужно учитывать при выборе между Spark Rdd и Spark- sql.

Ответы [ 3 ]

1 голос
/ 29 мая 2020

Я обнаружил, что использовать DF проще, чем DS - последние все еще подлежат разработке imho. Комментарий к pyspark действительно по-прежнему актуален.

RDD по-прежнему удобны для zipWithIndex, чтобы поместить как c непрерывные порядковые номера в элементы.

DF / DS имеют столбцовое хранилище и улучшенную поддержку Catalyst (Optimizer).

Кроме того, могут быть проблемы с RDD, например, JOIN, требующий ключа, значения и многошагового присоединяйтесь, если вам нужно присоединиться к более чем 2 таблицам. Они наследие. Проблема в том, что inte rnet полон наследия и, следовательно, RDD jazz.

1 голос
/ 29 мая 2020

Я не вижу особых причин для использования RDD.

Предполагая, что вы используете язык на основе JVM, вы можете использовать DataSet, который представляет собой смесь SparkSQL + RDD (DataFrame == DataSet [Row]) , согласно документации Spark:

Dataset - это новый интерфейс, добавленный в Spark 1.6, который обеспечивает преимущества RDD (строгая типизация, возможность использовать мощные лямбда-функции) с преимуществами оптимизированного механизма выполнения Spark SQL. .

Проблема в том, что python не поддерживает DataSet, поэтому вы будете использовать RDD и потеряете оптимизацию spark- sql при работе с неструктурированными данными.

0 голосов
/ 31 мая 2020

RDD
RDD - это набор данных по кластерам, который обрабатывает как неструктурированные, так и структурированные данные. Обычно это функциональная часть обработки данных

DF
Фреймы данных в основном представляют собой двумерный массив объектов, определяющих данные в строках и столбцах. Это похоже на таблицы отношений в базе данных. Фрейм данных обрабатывает только структурированные данные

enter image description here

...