gpt4 book ai didi

hadoop - Hive数组与结构

转载 作者:行者123 更新时间:2023-12-02 21:44:18 24 4
gpt4 key购买 nike

您能否让我知道如何为以下dml创建数据。

create external table doc_sample(id int,topic array<struct<course:string,score:array<struct<sem:string,marks:int>>>>)
ROW FORMAT delimited
FIELDS TERMINATED BY '|'
COLLECTION ITEMS TERMINATED BY ','
map keys terminated by ':'
STORED AS TEXTFILE
location '/user/cloudera/data/isaac';

1|'english2':'sem1':80

hive> select * from doc_sample;


1       [{"course":"'english2'","score":[{"sem":"'sem1'","marks":null}]}]

花费时间:0.095秒,获取:1行

最佳答案

抱歉,您的问题尚不清楚。
1.您是否需要知道发布的DDL输入文件的格式?
2.您是否需要知道如何创建表以实现SELECT查询中显示的输出?

我以下面的回应为#2。希望能帮助到你。
使用嵌套的复杂配置单元数据类型来编辑文件非常麻烦。请参阅“收集数据类型”上的配置单元指南部分,该部分说明了默认定界符^ A,^ B等,并进一步说明了如何将^ D行中的下一个^ D等用于嵌套数据类型。无论如何,很难用Ctrl字符手动编辑文件。
更好的方法是使用JSON格式的输入文件,并将jsonserde用于配置单元表。这是我创建示例的方式,
create table doc_sample_json
(id int,
topic array<struct<course:string,score:array<struct<sem:string,marks:bigint>>>>
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'

json.txt input data

{"id":1,"topic":[{"course":"english1","score":[{"sem":"sem1","marks":5}]},{"course":"english1","score":[{"sem":"sem1","marks":10},{"sem":"sem2","marks":15}]}]}

LOAD data local inpath '/user/docs/json.txt' overwrite into table doc_sample_json;


hive> select * from doc_sample_json;
OK
1 [{"course":"english1","score":[{"sem":"sem1","marks":5}]},{"course":"english1","score":[{"sem":"sem1","marks":10},{"sem":"sem2","marks":15}]}]

关于hadoop - Hive数组与结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26643749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com