Файл обработки Spark с другой структурой - PullRequest
0 голосов
/ 06 сентября 2018

Мой файл содержит несколько строк, которые имеют разную структуру. Каждый столбец распознается по позиции в зависимости от типа строки.

Например, у нас может быть такой файл:

row_type1  first_name1 last_name1   info1   info2
row_type2 last_name1 first_name1 info3  info2
row_type3info4info1last_name1first_name1 

Мы знаем положение каждого столбца для каждого типа строки, мы можем использовать подстроку, чтобы получить их.

Целевым фреймом данных будет "first_name1, last_name1, info1, info2, info3, info4) без дублирования (first_name1, last_name1)

Например, info1 дублируется в первом и третьем ряду. Мне также нужно выбрать, какой я оставлю. Например, если info1 1-й строки пуста или содержит только 2 символа, я выберу info1 3-й строки.

Я использую Spark 2.2 + Scala 2.10.

Я надеюсь, что мой вопрос достаточно ясен. Спасибо за ваше время

1 Ответ

0 голосов
/ 06 сентября 2018

Используйте RDD.map для преобразования каждой записи в стандартный формат. Затем напишите функцию агрегирования для агрегирования всех информационных столбцов. Вы можете поместить свою логику для информационных столбцов в этом. Агрегировать записи с ключом (first_name, last_name) и вызывать функцию агрегирования для информационных столбцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...