Подтвердить что ты не робот

Вывод запроса куста в файл

Я запускаю запрос куста java-кода. Пример:

"SELECT * FROM table WHERE id > 100"

Как экспортировать результат в файл hdfs.

4b9b3361

Ответ 1

Следующий запрос будет вставлять результаты непосредственно в HDFS:

INSERT OVERWRITE DIRECTORY '/path/to/output/dir' SELECT * FROM table WHERE id > 100;

Ответ 2

Эта команда перенаправляет вывод в текстовый файл по вашему выбору:

$hive -e "select * from table where id > 10" > ~/sample_output.txt

Ответ 3

Это приведет к результатам в файлах с разделителями табуляции в каталоге:

INSERT OVERWRITE LOCAL DIRECTORY '/home/hadoop/YourTableDir'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE
SELECT * FROM table WHERE id > 100;

Ответ 4

@Сарат, как перезаписать файл, если я хочу запустить другую команду select * из другой таблицы и записать в тот же файл?

ВСТАВИТЬ ПЕРЕЗАПИСАТЬ ЛОКАЛЬНУЮ КАТАЛОГ '/home/training/mydata/output' SELECT expl, count (expl) как итог
FROM (SELECT взорвать (разбить) как expl FROM (SELECT разбить (слова, '') как разбить FROM wordcount) t2) t3 GROUP BY expl;

Это пример вопроса сарат

вышеупомянутое задание количества слов хранится в выходном файле, который находится в локальной директории :)

Ответ 5

Я согласен с ответом tnguyen80. Обратите внимание, что когда в запросе будет задано определенное строковое значение, чтобы получить полный запрос в двойных кавычках.

Например:

$hive -e "select * from table where city = 'London' and id >=100" > /home/user/outputdirectory/city details.csv

Ответ 6

Идеальный способ сделать это будет использовать "INSERT OVERWRITE DIRECTORY" /pathtofile "select * from temp, где id > 100" вместо "hive -e" select * from... ' > /filepath.txt "

Ответ 7

Чтобы непосредственно сохранить файл в HDFS, используйте следующую команду:

hive> insert overwrite  directory '/user/cloudera/Sample' row format delimited fields terminated by '\t' stored as textfile select * from table where id >100;

Это поместит содержимое в папку /user/cloudera/Sample в HDFS.

Ответ 8

Введите эту строку в интерфейс командной строки Hive:

insert overwrite directory '/data/test' row format delimited fields terminated by '\t' stored as textfile select * from testViewQuery;

testViewQuery - какой-то конкретный вид

Ответ 9

  1. Создать внешнюю таблицу
  2. Вставить данные в таблицу
  3. Необязательное удаление таблицы позже, что не приведет к удалению этого файла, поскольку это внешняя таблица

Пример:

Создание внешней таблицы для хранения результатов запроса в '/user/myName/projectA_additionaData/'

CREATE EXTERNAL TABLE additionaData
(
     ID INT,
     latitude STRING,
     longitude STRING
)
COMMENT 'Additional Data gathered by joining of the identified cities with latitude and longitude data' 
ROW FORMAT DELIMITED FIELDS
TERMINATED BY ',' STORED AS TEXTFILE location '/user/myName/projectA_additionaData/';

Подача результатов запроса во временную таблицу

 insert into additionaData 
     Select T.ID, C.latitude, C.longitude 
     from TWITER  
     join CITY C on (T.location_name = C.location);

Отбрасывание временного стола

drop table additionaData

Ответ 10

Чтобы установить выходной каталог и формат выходного файла и многое другое, попробуйте следующее:

INSERT OVERWRITE [LOCAL] DIRECTORY directory1
[ROW FORMAT row_format] [STORED AS file_format] 
SELECT ... FROM ...

Пример:

INSERT OVERWRITE DIRECTORY '/path/to/output/dir'
ROW FORMAT DELIMITED
STORED AS PARQUET
SELECT * FROM table WHERE id > 100;