【问题标题】:null values getting uploaded into hive table from a csv file从 csv 文件上传到配置单元表的空值
【发布时间】:2013-07-06 19:19:14
【问题描述】:

我是 hadoop hive 的新手。我们正在使用开源 hadoop hive。它安装在 ubuntu 单节点集群上。我在一个 csv 文件中有 100 万行数据,我将它从 windows 移动到了 linux。当使用愚蠢的命令将数据上传到配置单元时,空值被上传到表中。

LOAD DATA INPATH '/home/goldstone/Desktop/RejectStats.csv' 
OVERWRITE INTO TABLE rejstats;

我什至尝试通过放置文件 hdfs 来上传值,但仍然是同样的问题。

我的表结构如下:

CREATE TABLE rejstats( amount_requested INT , appdate TIMESTAMP , loan_title STRING , dbt_income_ratio FLOAT , city STRING , state STRING , employment_lenght STRING)
ROW FORMAT
DELIMITED FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE;

我附上返回的空值的屏幕截图。

请任何人都可以帮助我解决这个问题。谢谢。

问候, 迪维亚。

【问题讨论】:

    标签: hadoop hive


    【解决方案1】:

    我认为您正在尝试在使用 FIELDS TERMINATED BY '\t' 的表中输入逗号分隔文件,即制表符。请尝试以下操作:

    CREATE TABLE rejstats (amount_requested INT , appdate TIMESTAMP , 
    loan_title STRING , dbt_income_ratio FLOAT , city STRING , 
    state STRING , employment_lenght STRING) ROW FORMAT DELIMITED FIELDS 
    TERMINATED BY ',' STORED AS TEXTFILE;
    
    LOAD DATA INPATH '/home/goldstone/Desktop/RejectStats.csv' 
    OVERWRITE INTO TABLE rejstats;
    

    【讨论】:

    • hive 是否支持 Timestamp 数据类型?因为我在从包含时间戳数据类型的配置单元表中检索数据时遇到错误。
    • hive 确实支持时间戳,但默认格式(通过 csv 从字符串读取时)是 YYYY-MM-dd HH:MM:SS.000
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多