【问题标题】:Unable to load data in Hive table in the correct form无法以正确的形式在 Hive 表中加载数据
【发布时间】:2020-07-23 01:23:30
【问题描述】:

嗨,我在 Hive 的外部表中有这个创建语句,但我的数据不一致 - 所以当我运行它时,我得到 Null?

create external table sampleartistdata(
    artistid int,
    artistname string
) 
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe' 
WITH SERDEPROPERTIES ("field.delim"="# ") 
STORED AS TEXTFILE
    location '/user/users/sampledata/';
select * from sampleartistdata limit 3;

这是数据的样子:

1134999 06Crazy Life
10113088    Terfel, Bartoli- Mozart: Don
6826647 Bodenstandig 3000
10186265    Jota Quest e Ivete Sangalo
6828986 Toto_XX (1977
10236364    U.S Bombs -
1135000 artist formaly know as Mat
10299728    Kassierer - Musik für beide Ohren
10299744    Rahzel, RZA

结果:

sampleartistdata.artistid       sampleartistdata.artistname
NULL    NULL
NULL    NULL
NULL    NULL

【问题讨论】:

  • 分享一些数据文件中的示例数据。
  • 它已共享,我将其标记为 --1134999 06Crazy Life 10113088 Terfel, Bartoli- Mozart: Don 6826647 Bodenstandig 3000 10186265 Jota Quest e Ivete Sangalo 6828986 Toto_XX (1977 10236364 U. Mat 10299728 Kasierer - Musik für beide Ohren 10299744 Rahzel, RZA

标签: amazon-web-services hadoop hive hdfs hiveql


【解决方案1】:

我能够通过更改行分隔符的值来解决它,而不是使用 ROW FORMAT SERDE,我使用了

drop table sampleartistdata;
create external table sampleartistdata(
    artistid int,
    artistname string
) ROW format DELIMITED
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE
    location '/user/jovyan/sampledata/';

【讨论】:

    猜你喜欢
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多