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.
|
|
|
|
|
|
|
|
|
# Рекомендации и подсказки
|
|
|
|
|
|
|
|
|
|
### 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
|
|
|
|
|
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
|