Как я могу экспортировать данные просмотра в улье? - PullRequest
0 голосов
/ 19 февраля 2019

Я создал 4 таблицы (a, b, c, d) в кусте и создал представление (x) поверх этих таблиц, соединив их.

- Как я могу экспортировать базовый xданные CSV из hdfs в локальный?

- Как я могу сохранить этот CSV в hdfs

для таблиц, мы можем сделать показать создать таблицу ;

это покажет расположение файлов hdf, где хранится базовый csv.

hadoop fs get --from source_path_and_file --to dest_path_and_file

аналогично, как я могу получить данные csv из представленияв мой местный.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Вы можете экспортировать данные представления в CSV, используя это:

insert overwrite local directory '/user/home/dir' row format delimited fields terminated by ',' select * from view;

Объедините файлы в локальном каталоге, если вам нужен один файл, используя cat:

cat /user/home/dir/* > view.csv

В качестве альтернативы, еслинабор данных небольшой, вы можете добавить order by в запрос, это приведет к срабатыванию одного редуктора и созданию одного упорядоченного файла.Это будет работать медленно, если набор данных большой.

0 голосов
/ 19 февраля 2019

1) чтобы записать результаты в файл, вы можете использовать INSERT OVERWRITE, как показано ниже:

insert overwrite local directory '/tmp/output'
row format delimited
fields terminated by '|'
select * from <view>;

2) Если вы хотите записать файл в HDFS, используйте оператор insert overwrite выше с local

3) Нет отдельного расположения HDFS для представлений.

Представление является чисто логической конструкцией из таблицы, и в HDFS для них не создано отдельное базовое хранилище.

Представления используются, когда вы хотите сохранить промежуточные результаты и запросить их напрямую вместо того, чтобы снова и снова писать сложный запрос в этой таблице.Как будто мы используем with blocks в нашем запросе.

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