Как решить проблему асимметрии и размера выходного файла в Apache Spark - PullRequest
1 голос
/ 08 июня 2019

Я сталкиваюсь с проблемой асимметрии, когда пытаюсь объединить 2 набора данных.Один из разделов данных (столбец, в котором я пытаюсь выполнить операцию соединения) имеет асимметрию, чем остальная часть раздела, и из-за этого один из конечных файлов выходной части в 40 раз превосходит остальные файлы выходной части.Я использую Scala, Apache spark для выполнения моих расчетов, и формат файла используется parquet.

. Поэтому я ищу 2 решения:

  • Во-первых, как я могу решить проблему асимметрииВремя обработки этих искаженных данных отнимает много времени.(Для искаженных данных я пробовал Broadcasting, но это не помогло)
  • Секунды - как я могу сделать все файлы окончательной выходной детали, хранящиеся в диапазоне 256 МБ.Я пробовал свойство spark.sql.files.maxPartitionBytes = 268435456, но оно не имеет значения.

Спасибо,

1 Ответ

0 голосов
/ 08 июня 2019

Асимметрия является распространенной проблемой при работе с данными. Чтобы справиться с этим, существует метод под названием соление .

Во-первых, вы можете проверить это видео от Теда Маласки , чтобы получить представление о солении.

Во-вторых, изучите его хранилище Ох, эта тема.

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

...