无法以正确的形式在 Hive 表中加载数据

Posted

技术标签:

【中文标题】无法以正确的形式在 Hive 表中加载数据【英文标题】:Unable to load data in Hive table in the correct form 【发布时间】: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 【参考方案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/';

【讨论】:

以上是关于无法以正确的形式在 Hive 表中加载数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在 hive 表中加载多行列数据?具有换行符的列

如果在同一个 AppDomain 中加载了多个版本,WPF 无法选择正确的 DLL

在搜索栏iOS swift3中加载带有条目的单元格时,图像无法正确显示

PHP 生成 XML 文件以在另存为对话框中加载正确的文件类型

WKWebView 无法在 HTML 中加载本地资源

使用正确的数据类型在 CSharp 中加载 C++ dll