Как использовать API параллелизма для фреймов данных?

#scala #spark-dataframe

#scala #apache-spark-sql

Вопрос:

У меня есть требование распараллелить фреймы данных Scala для загрузки различных таблиц. У меня есть таблица фактов, содержащая около 1,7 ТБ данных. Загрузка занимает около 5 минут. Я хочу одновременно загружать свои таблицы измерений, чтобы я мог уменьшить общий scala. Я не очень хорошо разбираюсь в параллельном API в Scala ?.

Ответ №1:

Вам нужно прочитать Spark — весь смысл в том, чтобы распараллелить обработку данных за пределами одной машины. По сути, Spark распараллелит нагрузку на столько задач, сколько у вас будет выполняться параллельно — все зависит от того, как вы настроили свой кластер — из вопроса, который, как я предполагаю, вы используете только on, и что вы запустили его в локальной модели, и в этом случае вы должны, по крайней мере, запустить его с помощью local[количество процессорову вас есть]

Если я не прояснил, вам также не следует использовать какие-либо другие API параллелизма Scala

Комментарии:

1. SQLContext.sql(«ИЗ Fact_Table ВЫБЕРИТЕ ключ, значение»).collect().foreach(println) SQLContext.sql(«ИЗ Dimension1 ВЫБЕРИТЕ ключ, значение»).collect().foreach(println) SQLContext.sql(«ИЗ Dimension2 ВЫБЕРИТЕ ключ, значение»).collect().foreach(println) Если я выполняю команды таким образом, я бы сначала выполнил выбор таблицы фактов, затем Размерность 1, а затем размерность 2. В приведенном выше случае я хотел бы одновременно запускать инструкции для одновременной загрузки таблицы фактов и таблиц измерений, а не последовательно

2. не собирать — он отправляет все данные обратно исполнителю. Кажется, это проблема XY ( xyproblem.info ) Вероятно, вам следует задать другой вопрос, касающийся именно того, что вы пытаетесь решить

3. Я привел пример, в идеале мы будем выбирать в различные фреймы данных, а затем объединять все фреймы данных и таблицу фактов, чтобы получить итоговую таблицу. Но мой вопрос заключается в том, как одновременно загружать данные из таблиц hive в фреймы данных в scala