在Hive中创建一个表并用数据填充它

时间:2016-06-16 16:05:33

标签: hive

在尝试在Hive表中加载数据时,我遇到了一个看起来很奇怪的行为。我的数据由作为记录加载的JSON对象组成,这些对象名为twitter_test,包含一个名为" json"的单个列。

现在我想从每个JSON中提取三个字段并构建一个名为" my_twitter"的新表。因此,我发出命令

CREATE TABLE my_twitter AS SELECT regexp_replace(get_json_object(t.json, '$.body\[0]'), '\n', '') as text, get_json_object(t.json, '$.publishingdate\[0]') as created_at, get_json_object(t.json, '$.author_screen_name\[0]') as author from twitter_test AS t;

结果是一个包含三列但不包含数据的表。但是,如果我单独运行SELECT命令,则会按预期返回数据。

通过反复试验,我发现我需要在查询结尾处添加LIMIT x,以便在新表中插入数据。问题是:为什么? 此外,我需要提前知道x语句返回的SELECT行的数量CREATE以使undefined is not a function evaluating react create class 正常工作,这似乎很奇怪。有没有解决方法?

1 个答案:

答案 0 :(得分:0)

您可以使用JSON serde在此json数据上创建一个表,该服务器将解析json对象,然后您可以轻松地轻松选择每个列。

在下面找到使用json serde创建json表的示例配置单元DDL

    tr td:last-child{
          overflow:scroll;
          max-width:300px;
    }