tutorial summoners spark pig com2us hadoop hive

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 :)