【问题标题】:I have table of 56 columns and want to load 46 columns of data how can I do it?我有 56 列的表,想加载 46 列的数据,我该怎么做?
【发布时间】:2019-07-23 21:14:23
【问题描述】:

我有一个包含 56 列的表(主表),我想从包含 46 列的不同表中加载数据。我尝试将 46 列数据导出到 CSV 并尝试将数据加载到主表中。它已加载但数据不匹配。任何人都可以帮我解决这个问题...例如 Empid 包含 emp 名称的数据。

将数据本地路径'/home/data/download/sample.csv'加载到表slave_table中 从slave_table中选择*

【问题讨论】:

    标签: apache-spark hadoop hive hiveql


    【解决方案1】:

    你可以这样做:

    1.创建一个包含来自 csv 的 46 列的表:

    CREATE EXTERNAL TABLE TABLENAME                                                 
    (COLS)                                               
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'                                                       
    WITH SERDEPROPERTIES ("separatorChar"=",", "quoteChar" = '~', "escapeChar" = "Δ", "skip.header.line.count"="1")    
    STORED AS TEXTFILE 
    

    请根据需要修改 serdeproperties!

    2.从这个新创建的表插入到您的 56 cols 表中,插入如下:

    Insert into TABLE_WITH_56_COLS (name the 46 cols that you want to populate)
    select 46 cols from TABLE_WITH_46_COLS;
    

    希望这对您有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-28
      • 1970-01-01
      • 2020-12-28
      • 2022-12-06
      • 2021-07-16
      相关资源
      最近更新 更多