Fixed lab 2 task description.

master
Vladimir Protsenko 4 years ago
parent dcf248f68c
commit 517b025457

@ -1,4 +1,10 @@
1. Подзадачи "Преобразовать любой файл набора данных stackoverflow в parquet формат c помощью Apache Spark.":
# Рекомендации и подсказки
### 1. Для парсинга xml строк используйте метод `scala.xml.XML.loadString`.
### 2. Для получения значений из полученного объекта `myxml.attribute('UserId')` или `myxml.attributes.asAttrMap('UserId')`.
### 3. Подзадачи "Преобразовать любой файл набора данных stackoverflow в parquet формат c помощью Apache Spark.":
1) создать объект типа RDD для текстового файла /data/stackoverflow/posts.xml 1) создать объект типа RDD для текстового файла /data/stackoverflow/posts.xml
2) добавить к каждому объекту индекс .zipWithIndex 2) добавить к каждому объекту индекс .zipWithIndex
3) убрать из коллекции строки 1, 2 и последню фильтрацией по индексу 3) убрать из коллекции строки 1, 2 и последню фильтрацией по индексу
@ -10,5 +16,6 @@
6) создать Dataset на основе коллекции объектов класса-схемы методом spark.createDataset 6) создать Dataset на основе коллекции объектов класса-схемы методом spark.createDataset
7) сохранить таблицу в parquet файл 7) сохранить таблицу в parquet файл
2. Код решения части 2. # Пример решения
- https://gist.github.com/protsenkovi/f163377113b172ccfeb5db397f7dd75c
https://gist.github.com/protsenkovi/f163377113b172ccfeb5db397f7dd75c

@ -0,0 +1,31 @@
# Лабораторная 2. Формирование отчётов в Apache Spark
## Задание
1. Преобразовать любой файл набора данных **Stack Overflow** в parquet формат c помощью Apache Spark.
2. Сформировать отчёт с информацией о частоте обсуждения 10 наиболее популярных языков программирования
в каждом году с 2010 года по сегодняшний день. Используйте теги входящие в список языков
перечисленных в википедии https://en.wikipedia.org/wiki/List_of_programming_languages.
Для выполнения задания вы можете использовать любую комбинацию Spark API: **RDD API**, **Dataset API**, **SQL API**.
## Набор данных
Архивы сайтов **Stack Exchange** доступны по адресу https://archive.org/details/stackexchange.
В папке `data` данного репозитория вам доступны:
- выборка данных `posts_sample.xml`,
- файл со списком языков `programming-languages.csv`, собранных с вики-страницы.
Рекомендуется отлаживать решение на небольшой выборке данных `posts_sample.xml`. Данная выборка была получена следующим кодом:
```
sc.textFile("/user/mapr/posts.xml").mapPartitions(_.take(100))
```
## Ссылки на источники
1. https://spark.apache.org/docs/latest/sql-programming-guide.html
2. http://timepasstechies.com/spark-dataset-api-examples-tutorial-20/
3. https://jaceklaskowski.gitbooks.io/mastering-spark-sql/
4. https://en.wikipedia.org/wiki/OLAP_cube
5. http://homepage.cs.latrobe.edu.au/zhe/ZhenHeSparkRDDAPIExamples.html

@ -1,30 +0,0 @@
Лабораторная 2. Формирование отчётов в Apache Spark
Задание:
1. Преобразовать любой файл набора данных stackoverflow в parquet формат c помощью Apache Spark.
2. Сформировать отчёт с информацией о частоте обсуждения 10 наиболее популярных языков программирования
в каждом году с 2010 года по сегодняшний день. Используйте теги входящие в список языков
перечисленных в википедии https://en.wikipedia.org/wiki/List_of_programming_languages.
Набор данных:
https://archive.org/details/stackexchange
Для выполнения задания используйте Dataset API и/или SQL API. Рекомендуется отлаживать код на небольшой выборке данных.
Пример кода для получения тестовой выборки:
sc.textFile("/user/mapr/posts.xml").mapPartitions(_.take(100))
Для парсинга xml строк используйте метод scala.xml.XML.loadString, для получения значений из
полученного объекта myxml.attribute('UserId') или myxml.attributes.asAttrMap('UserId').
Ссылки на источники:
1. https://spark.apache.org/docs/latest/sql-programming-guide.html
2. http://timepasstechies.com/spark-dataset-api-examples-tutorial-20/
3. https://jaceklaskowski.gitbooks.io/mastering-spark-sql/
4. https://en.wikipedia.org/wiki/OLAP_cube
5. http://homepage.cs.latrobe.edu.au/zhe/ZhenHeSparkRDDAPIExamples.html
Loading…
Cancel
Save