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

问题描述 投票:1回答:1

我已经多次询问过这类问题,但这些解决方案对我没有用。我创建了一个外部的hive表,因为我的数据来自map-only job输出。然后,通过load命令给出特定文件的路径。它显示确定。但是当我给select * from table命令它返回一些空值的列。我执行的每个命令都在错误pic中。

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

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

hadoop hive bigdata nonetype hive-query
1个回答
0
投票

您遇到的问题与作为FIELD分隔符的多个字符有关。

根据文件FIELD定界符应该是CHAR

row_format
  : DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]] [COLLECTION ITEMS TERMINATED BY char]
        [MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]
        [NULL DEFINED AS char]   -- (Note: Available in Hive 0.13 and later)

您需要将数据更改为仅具有单个字段分隔符。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.