在尝试在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
正常工作,这似乎很奇怪。有没有解决方法?
答案 0 :(得分:0)
您可以使用JSON serde在此json数据上创建一个表,该服务器将解析json对象,然后您可以轻松地轻松选择每个列。
在下面找到使用json serde创建json表的示例配置单元DDL
tr td:last-child{
overflow:scroll;
max-width:300px;
}