You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

22 lines
1.7 KiB
Markdown

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