Hive查询中返回空的行

时间:2016-10-24 14:12:03

标签: json mongodb hive cloudera

我已经从一个从Mongo DB导出的tweets json文件创建了一个外部Hive表。每当我从配置单元表中选择多个列时,检索到的结果都没有很好地格式化。某些列为空或NULL(即使我以特定值为条件),并且某些数据显示在错误的列中。

我认为这种情况正在发生,因为文本中有逗号。当我尝试查询hive表而不选择推文的文本时,结果就有意义了。但我不知道如何解决这个问题。

任何人都知道如何解决这个问题?

最佳,

2 个答案:

答案 0 :(得分:0)

为什么不尝试格式化输出?像这样的东西 -

    SELECT
CONCAT(COALESCE(COL1,''),
  '|', COALESCE(COL2,''),
  '|', COALESCE(COL3,''),
  '|', COALESCE(COL4,''),
  '|', COALESCE(COL5,''),
  '|', COALESCE(COL6,''),
  '|', COALESCE(COL7,'')) as tweetsout
FROM (
    SELECT COL1, COL2, COL3, COL4, COL5, COL6, COL7
    FROM TWEETS
    ) TOUT

这将为您提供由管道分隔的输出,而不是标准制表符分隔的输出。

答案 1 :(得分:0)

在不知道您使用的确切create table命令的情况下很难判断......

如果输入数据包含表分隔符,通常会错误地解析表。例如,输入数据库中的某些推文可能包含\n,它可能是您创建的配置单元表中的行分隔符。