hadoop - spark - hive summoners war
Colgar salida de consulta en archivo (8)
Ejecuto la consulta de colmena por código java. Ejemplo:
"SELECCIONAR * FROM table WHERE id> 100"
Cómo exportar el resultado al archivo hdfs.
Este comando redirigirá el resultado a un archivo de texto de su elección:
$hive -e "select * from table where id > 10" > ~/sample_output.txt
Esto colocará los resultados en archivos delimitados por tabulaciones en un directorio:
INSERT OVERWRITE LOCAL DIRECTORY ''/home/hadoop/YourTableDir''
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ''/t''
STORED AS TEXTFILE
SELECT * FROM table WHERE id > 100;
Estoy de acuerdo con la respuesta de tnguyen80. Tenga en cuenta que cuando hay un valor de cadena específico en la consulta mejor para la consulta completa dada entre comillas dobles.
Por ejemplo:
$hive -e "select * from table where city = ''London'' and id >=100" > /home/user/outputdirectory/city details.csv
Ingrese esta línea en la interfaz de línea de comando de Hive:
inserte los campos delimitados por el formato de fila ''/ data / test'' del directorio owerwrite terminado por ''/ t'' almacenado como archivo de texto select * from testViewQuery;
''testViewQuery'': alguna vista específica
La forma ideal de hacerlo será usar "INSERT OVERWRITE DIRECTORY" / pathtofile "select * from temp where id> 100" en lugar de "hive -e ''select * from ...''> /filepath.txt"
La siguiente consulta insertará los resultados directamente en HDFS:
INSERT OVERWRITE DIRECTORY ''/path/to/output/dir'' SELECT * FROM table WHERE id > 100;
Para guardar directamente el archivo en HDFS, use el siguiente comando:
hive> insert overwrite directory ''/user/cloudera/Sample'' row format delimited fields terminated by ''/t'' stored as textfile select * from table where id >100;
Esto colocará los contenidos en la carpeta / usuario / cloudera / Sample en HDFS.
INSERT OVERWRITE LOCAL DIRECTORY ''/home/training/mydata/outputs''
SELECT expl , count(expl) as total
FROM (
SELECT explode(splits) as expl
FROM (
SELECT split(words,'' '') as splits
FROM wordcount
) t2
) t3
GROUP BY expl ;
Este es un ejemplo de la pregunta de Sarato
lo anterior es un trabajo de recuento de palabras almacenado en el archivo de salidas que está en el directorio local :)