Hive 中的布尔列加载为 NULL

Posted

技术标签:

【中文标题】Hive 中的布尔列加载为 NULL【英文标题】:Boolean columns in Hive are loaded as NULL 【发布时间】:2015-03-31 18:48:14 【问题描述】:

我有以下输入 csv 文件

10418872, fever, FALSE
10418872, shortness of breath, FALSE
10418872, shortness of breath, FALSE
10418872, shortness of breath, FALSE

我使用这些命令创建了一个 hive 表并在其中加载了数据

create database bpo;
CREATE EXTERNAL TABLE bpo.adverse(patientId INT, symptom STRING, severe BOOLEAN) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' STORED AS TEXTFILE LOCATION '/landingzone/hive/adverse';
LOAD DATA INPATH '/landingzone/adverse-effects.csv' INTO TABLE bpo.adverse;

但是现在当我在 hive 中查询数据时

10418872         fever  NULL
10418872         shortness of breath    NULL
10418872         shortness of breath    NULL
10418872         shortness of breath    NULL

为什么布尔列变为空?我也尝试过改变大小写。

【问题讨论】:

【参考方案1】:

请修剪 FALSE 前的前导空格并尝试。

我用上面的输入测试如下,你可以看到输出的不同:

10418872, fever,FALSE
10418872, shortness of breath,FALSE
10418872, shortness of breath, FALSE
10418872, shortness of breath, FALSE

我在 hive 中得到了结果:

adverse.patientid  adverse.symptom  adverse.severe
10418872         fever  false
10418872         shortness of breath    false
10418872         shortness of breath    NULL
10418872         shortness of breath    NULL

【讨论】:

以上是关于Hive 中的布尔列加载为 NULL的主要内容,如果未能解决你的问题,请参考以下文章

PySpark/Hive:如何使用 LazySimpleSerDe 创建表以转换布尔值“t”/“f”?

BigQuery 加载作业在 JSON 中的布尔数据类型字段上失败

当一个单元格不是数字时,R 包 XLSX 将整列转换为字符串或布尔值

pandas 数据框将 INT64 列转换为布尔值

如何使用多个布尔条件选择 Pandas DataFrame 中的特定列

如何使用 next.jdbc 将 SQLite 中的 bool 列读入 bool Clojure 值? SQLite 将布尔值存储为 0/1