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.7 KiB

Рекомендации и подсказки

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 в коллекцию объектов вновь созданного типа
  5. создать Dataset на основе коллекции объектов класса-схемы методом spark.createDataset
  6. сохранить таблицу в parquet файл

Пример решения

https://gist.github.com/protsenkovi/f163377113b172ccfeb5db397f7dd75c