Как Spark работает со структурированными JSON-файлами

курсы hadoop sql, big data обучение, bigdata курсы, hadoop spark, анализ с использование spark, bigdata курсы,аналитика больших данных курсы, курсы spark, основы spark, основы hadoop, обучение администраторов spark, spark mllib, spark rdd, spark streaming, apache hadoop, обучение spark sql, курсы spark streaming, курсы по apache spark, обучение apache spark, apache hadoop курсы, spark streaming

В прошлый раз мы говорили про особенности взаимодействия Big Data фреймворка Spark с реляционными СУБД. Сегодня поговорим о том, как Spark обрабатывает данные, которые подаются в виде структуры формата JSON (Java Script Object Notation). Читайте далее про особенности работы с JSON-файлами в распределенной среде фреймворка Apache Spark.

Особенности работы Spark со структурированными JSON-файлами

JSON (Java Script Object Notation) — это текстовый формат данных, основанный на языке JavaScript. Однако несмотря на происхождение от JavaScript, формат считается независимым от языка и может использоваться в качестве обрабатываемой структуры данных с любым языком программирования (например, Java, Python, Scala). В качестве значений в JSON могут быть использованы следующие элементы:

  • запись — это множество пар ключ/значение, заключенное в фигурные скобки;
  • одномерный массив — это упорядоченное множество значений, заключенное в квадратные скобки. Значения массива разделяются между собой запятыми. Значения в пределах одного JSON-массива могут иметь разный тип;
  • литералы — элементы, имеющие буллевский (boolean) тип и принимающие значения true (истина) или false (ложь);
  • строка — это упорядоченное множество из нуля или более символов, заключенных в двойные кавычки [1].
курсы hadoop sql, big data обучение, bigdata курсы, hadoop spark, анализ с использование spark, bigdata курсы,аналитика больших данных курсы, курсы spark, основы spark, основы hadoop, обучение администраторов spark, spark mllib, spark rdd, spark streaming, apache hadoop, обучение spark sql, курсы spark streaming, курсы по apache spark, обучение apache spark, apache hadoop курсы, spark streaming
Структура файла JSON

Работа с JSON-файлами в Spark: несколько практических примеров

Для того, чтобы прочитать JSON-файл в Spark используется метод json(), который в качестве параметра принимает путь до файла, включая сам файл:

json_data = spark.read.json('file.json')

Однако в большинстве случаев необходимо прочитать несколько JSON-файлов за один раз, поэтому необходимо настроить параметр для мультистрок (multiline). Для этого необходимо во время чтения вызвать метод option() и указать в качестве параметра multiline, а в методе json() указать путь до папки (директории) с файлами:

json_data = spark.read.option("multiline",True).json('files')

После чтения JSON-файла Spark автоматически создает датафрейм. Зачастую один ключ может иметь несколько значений, некоторые из которых являются массивами. Для того, чтобы получить значения конкретного массива, необходимо в методе select() указать название ключа и через точку указать название массива, который содержит данный ключ:

json_data.select('elements.companyGroupShortInfo.groupID').show()

 

курсы hadoop sql, big data обучение, bigdata курсы, hadoop spark, анализ с использование spark, bigdata курсы,аналитика больших данных курсы, курсы spark, основы spark, основы hadoop, обучение администраторов spark, spark mllib, spark rdd, spark streaming, apache hadoop, обучение spark sql, курсы spark streaming, курсы по apache spark, обучение apache spark, apache hadoop курсы, spark streaming
Полученные значения массива

Зачастую случается так, что значения представлены в виде многомерного массива и явно получить доступ к его элементам не получится. Для этого в Spark существует специальный метод explode(), позволяющий разбить многомерный массив на одномерные и работать с каждым массивом по отдельности. Следующий код на языке Python позволяет разбить многомерный массив значений ключа businessRegion и получить имена областей (name):

json_data.select(explode('elements.companyGroupShortInfo.businessRegions.businessRegion')\
.alias ('b')).select('b.name').show()

 

курсы hadoop sql, big data обучение, bigdata курсы, hadoop spark, анализ с использование spark, bigdata курсы,аналитика больших данных курсы, курсы spark, основы spark, основы hadoop, обучение администраторов spark, spark mllib, spark rdd, spark streaming, apache hadoop, обучение spark sql, курсы spark streaming, курсы по apache spark, обучение apache spark, apache hadoop курсы, spark streaming
Значения из многомерного массива

Таким образом, благодаря методам работы с JSON-файлами, фреймворк Spark способен обрабатывать огромное количество структурированных Big Data документов в распределенной среде. Это делает фреймворк Apache Spark весьма полезным средством для Data Scientist’а и разработчика распределенных Big Data приложений. В следующей статье мы поговорим про деревья решений в Spark.

Больше подробностей про применение Apache Spark в проектах анализа больших данных, разработки Big Data приложений и прочих прикладных областях Data Science вы узнаете на практических курсах по Spark в нашем лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов в Москве:

Записаться на курс

Смотреть раcписание

Источники

  1. https://ru.wikipedia.org/wiki/JSON

Добавить комментарий

Поиск по сайту