Exporting Hive Table to a S3 bucket

后端 未结 3 1111
无人及你
无人及你 2020-12-29 05:29

I\'ve created a Hive Table through an Elastic MapReduce interactive session and populated it from a CSV file like this:

CREATE TABLE csvimport(id BIGINT, tim         


        
相关标签:
3条回答
  • 2020-12-29 06:04

    Above Query needs to use EXTERNAL keyword, i.e:

    CREATE EXTERNAL TABLE csvexport ( id BIGINT, time STRING, log STRING ) 
    row format delimited fields terminated by ',' lines terminated by '\n' 
    STORED AS TEXTFILE LOCATION 's3n://bucket/directory/';
    INSERT OVERWRITE TABLE csvexport select id, time, log from csvimport;
    

    An another alternative is to use the query

    INSERT OVERWRITE DIRECTORY 's3n://bucket/directory/'  select id, time, log from csvimport;
    

    the table is stored in the S3 directory with HIVE default delimiters.

    0 讨论(0)
  • 2020-12-29 06:13

    Yes you have to export and import your data at the start and end of your hive session

    To do this you need to create a table that is mapped onto S3 bucket and directory

    CREATE TABLE csvexport (
      id BIGINT, time STRING, log STRING
      ) 
     row format delimited fields terminated by ',' 
     lines terminated by '\n' 
     STORED AS TEXTFILE
     LOCATION 's3n://bucket/directory/';
    

    Insert data into s3 table and when the insert is complete the directory will have a csv file

     INSERT OVERWRITE TABLE csvexport 
     select id, time, log
     from csvimport;
    

    Your table is now preserved and when you create a new hive instance you can reimport your data

    Your table can be stored in a few different formats depending on where you want to use it.

    0 讨论(0)
  • 2020-12-29 06:21

    If you could access aws console and have the "Access Key Id" and "Secret Access Key" for your account

    You can try this too..

    CREATE TABLE csvexport(id BIGINT, time STRING, log STRING)
    ROW FORMAT DELIMITED
    FIELDS TERMINATED BY '\t'
    LOCATION 's3n://"access id":"secret key"@bucket/folder/path';
    

    Now insert the data as other stated above..

    INSERT OVERWRITE TABLE csvexport select id, time, log from csvimport;
    
    0 讨论(0)
提交回复
热议问题