Soy nuevo en la colmena. He logrado configurar un único nodo de clúster hadoop para el propósito de desarrollo y en la parte superior de la misma, he instalado hive y pig.

He creado una tabla ficticia de la colmena:

create table foo (id int, name string);

Ahora, quiero insertar datos en esta tabla. Puedo agregar datos como sql de un registro a la vez? amablemente me ayude con un análogo de comando:

insert into foo (id, name) VALUES (12,"xyz);

También, tengo un archivo csv que contiene los datos en el formato:

1,name1
2,name2
..
..

..


1000,name1000

¿Cómo puedo cargar estos datos en la tabla ficticia?

  • Esto es lo que acabé haciendo en la Colmena 0.12 que no admite INSERTAR VALORES: insert into table foo select 12, 'xyz' from (select count(1) from foo) a;

11 Comentarios

  1. 26

    Creo que la mejor manera es:

    a) Copia de los datos en HDFS (si no está ya allí)

    b) Crear una tabla externa sobre el archivo CSV como este

    CREATE EXTERNAL TABLE TableName (id int, name string)
    ROW FORMAT DELIMITED   
    FIELDS TERMINATED BY ',' 
    LINES TERMINATED BY '\n'
    STORED AS TEXTFILE
    LOCATION 'place in HDFS';

    c) Usted puede comenzar a usar TableName ya mediante la emisión de consultas.

    d) si desea insertar los datos en otra Colmena tabla:

    insert overwrite table finalTable select * from table name;
    • En este caso los campos debe ser terminado por ‘,’.
    • lo siento – me quería mostrar el ejemplo…
  2. 8

    No hay una forma directa para insertar 1 registro en un momento de la terminal, sin embargo, he aquí un sencillo recta hacia adelante solución que normalmente utilizo cuando quiero probar algo:

    Suponiendo que t es una tabla con al menos 1 registro. No importa cuál es el tipo o el número de columnas.

    INSERT INTO TABLE foo
    SELECT '12', 'xyz'
    FROM t
    LIMIT 1;
    • NOTA: no hay ni cualquier insert into table foo (column1, column2) select 'col1-value', 'col2-value' from t limit 1; Usted tiene que especificar cada columna en la cláusula select.
    • Como totto90 describe este es bueno para las pruebas, pero también vale la pena señalar que al hacer esto se crea un nuevo archivo pequeño cada vez, lo que podría llevar a una degradación del rendimiento graves en un mundo real de casos de uso.
  3. 3

    Lo que nunca datos que se han insertado en un archivo de texto o archivo de registro que puede poner en una ruta en hdfs y, a continuación, escribir una consulta como la siguiente en la colmena

      hive>load data inpath<<specify inputpath>> into table <<tablename>>;

    EJEMPLO:

    hive>create table foo (id int, name string)
    row format delimited
    fields terminated by '\t' or '|'or ','
    stored as text file;
    table created..
        DATA INSERTION::
        hive>load data inpath '/home/hive/foodata.log' into table foo;
  4. 3

    para insertar ad-hoc valor como (12,»xyz), hacer esto:

    insert into table foo select * from (select 12,"xyz")a;
    • Podría usted comentar?
  5. 1

    Es un la limitación de la colmena.

    1.Usted puede actualizar los datos una vez que se inserta

    2.No hay ningún «insert into tabla de valores …» declaración de

    3.Sólo puede cargar datos mediante la carga masiva

    4.No hay «delete from» comando

    5.Usted sólo puede hacer la eliminación masiva

    Pero usted todavía desea insertar registro de la colmena de la consola que usted puede hacer seleccione una de statck. consulte este

    • no ha sido una limitación desde la primavera de 2013 que se hace referencia en el artículo es muy anticuado
  6. 1

    Usted puede intentar este, he desarrollado una herramienta para generar colmena secuencias de comandos desde un archivo csv. A continuación se presentan algunos ejemplos sobre cómo se generan los archivos.
    Herramienta — https://sourceforge.net/projects/csvtohive/?source=directory

    1. Seleccione un archivo CSV utilizando Examinar y establecer hadoop directorio raíz ex: /usuario/bigdataproject/

    2. Herramienta Genera la secuencia de comandos de Hadoop con todos los archivos csv y el siguiente es un ejemplo de
      generado Hadoop script para insertar csv en Hadoop

      #!/bin/bash -v
      hadoop fs -put ./AllstarFull.csv /user/bigdataproject/AllstarFull.csv hive -f ./AllstarFull.hive

      hadoop fs -put ./Appearances.csv /user/bigdataproject/Appearances.csv hive -f ./Appearances.hive

      hadoop fs -put ./AwardsManagers.csv /user/bigdataproject/AwardsManagers.csv hive -f ./AwardsManagers.hive

    3. Muestra de generar scripts de Hive

      CREATE DATABASE IF NOT EXISTS lahman;
      USE lahman;
      CREATE TABLE AllstarFull (playerID string,yearID string,gameNum string,gameID string,teamID string,lgID string,GP string,startingPos string) row format delimited fields terminated by ',' stored as textfile;
      LOAD DATA INPATH '/user/bigdataproject/AllstarFull.csv' OVERWRITE INTO TABLE AllstarFull;
      SELECT * FROM AllstarFull;

    Gracias
    Vijay

  7. 1

    esto es compatible con la versión de la colmena 0.14

    INSERTAR EN la TABLA pd_temp(dept,hacer,costo,id,asmb_city,asmb_ct,venta al por menor) VALUES(‘producción’,’tailandia’,10,99202,’northcarolina’,’estados unidos’,20)

    • Este apenas se parece como un duplicado de user3650393 la respuesta desde hace más de un año.
  8. 1

    Puede usar las siguientes líneas de código para insertar valores en una ya existente de la tabla. Aquí la tabla es db_name.table_name con dos columnas, y yo soy la inserción de ‘Todos’,’hecho’, como una fila en la tabla.

    insert into table db_name.table_name
    select 'ALL','Done';

    Espero que esto fue útil.

  9. 0

    Hadoop sistema de archivos no admite anexar datos a archivos existentes. Aunque, usted puede cargar su archivo CSV en HDFS y decirle a la Colmena para tratarlo como una tabla externa.

    • Hmm, ¿qué acerca de INSERTAR EN la TABLA foo SELECCIONAR 12, «xyz» DE foo LIMITACIÓN 1?
  10. 0

    Utilizar este –

    create table dummy_table_name as select * from source_table_name;

    Esto creará la nueva tabla con los datos existentes disponibles en source_table_name.

Dejar respuesta

Please enter your comment!
Please enter your name here