在配置单元中的select语句返回一些具有空值的列

时间:2017-12-25 08:53:11

标签: hadoop hive bigdata nonetype hive-query

我已经多次询问过这类问题,但这些解决方案对我不起作用。我创建了一个外部配置单元表,因为我的数据来自仅地图作业输出。然后,通过load命令给出特定文件的路径。它显示确定。但是当我给出select * from table命令时,它返回一些具有空值的列。我执行的每个命令都在错误图片中。

我在文件中的分隔符是||,所以我在create table命令中也提到了相同的内容。

这是我的输入文件pic file pic。这是error pic 。我也试过一个普通的表而不是外部表。这也表现出同样的错误。我还尝试将分隔符称为//||\|\|。但都没有效果。

1 个答案:

答案 0 :(得分:0)

您遇到的问题与多个字符有关,即FIELD定界符。

根据文档,FIELD定界符应为div1

div2

您需要将数据更改为只有一个字段分隔符。

如果你不能这样做,那么另一种方法是使用具有单个字段的阶段表。将数据加载到该表,然后在实际目标表中,将阶段表中的列拆分为div1分隔符,然后插入。您需要确保数据中的字段计数是一致的,否则您的最终输出将会关闭。

参考: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-CreateTableCreate/Drop/TruncateTable