Ошибка сплющивания свиньи

Я попробовал этот скрипт для своих вложенных данных:

 `books = load 'data/book-seded-workings-reduced.json'
    using JsonLoader('user_id:chararray,type:chararray,title:chararray,year:chararray,publisher:chararray,authors:{(name:chararray)},source:chararray');`

group_auth = group books by title;

maped = foreach group_auth generate group, books.authors;

fil = foreach maped generate flatten(books); DUMP fil;

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

Есть идеи?


person moubert    schedule 15.08.2014    source источник
comment
Можете ли вы объяснить, какую проблему вы пытаетесь решить? Если вы не используете какую-либо операцию агрегирования, почему вы группируете книги по названию, а затем создаете группу авторов книги и сглаживаете ее? Для этого вы можете использовать только оператор генерации foreach.   -  person Suraj Nayak    schedule 16.08.2014
comment
Вы можете увидеть мои данные здесь: stackoverflow.com/questions/24976373/ Я пытаюсь сгенерировать для каждого заголовка авторы, связанные с ним, но один за другим... И позже я хотел бы сделать запрос по автору (поле имени в моем скрипте ), поэтому я подумал, что мне нужно удалить вложенную структуру с помощью flatten   -  person moubert    schedule 16.08.2014
comment
Я также пытался сделать такие запросы с помощью куста, но я все еще застрял в своей ошибке serde: stackoverflow.com/questions/25149700/ Итак, я я немного запутался с ульем и свиньей   -  person moubert    schedule 16.08.2014
comment
В этом случае вы можете удалить предложение group by. Попробуйте следующий код после оператора загрузки:   -  person Suraj Nayak    schedule 16.08.2014


Ответы (1)


books = load 'input.data'
    using JsonLoader('user_id:chararray,
                      type:chararray,
                      title:chararray,
                      year:chararray,
                      publisher:chararray,
                      authors:{(name:chararray)},source:chararray');

flatten_authors = foreach books generate title, FLATTEN(authors.name);

dump flatten_authors;

Вывод: (входная информация указана из Загрузка файла JSON с сервером в Cloudera)

(Modern Database Systems: The Object Model, Interoperability, and Beyond.,null)
(Inequalities: Theory of Majorization and Its Application.,Albert W. Marshall)
(Inequalities: Theory of Majorization and Its Application.,Ingram Olkin)
person Suraj Nayak    schedule 16.08.2014
comment
Без понятия. Позвольте мне попробовать, опубликую свой ответ, если смогу решить эту проблему! - person Suraj Nayak; 16.08.2014