Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 带sruct的蜂窝阵列_Hadoop_Hive_Hiveql - Fatal编程技术网

Hadoop 带sruct的蜂窝阵列

Hadoop 带sruct的蜂窝阵列,hadoop,hive,hiveql,Hadoop,Hive,Hiveql,请告诉我如何为下面的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

请告诉我如何为下面的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;

所用时间:0.095秒,获取:1行

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

我假设下面的回答是2。希望能有帮助。 编辑具有嵌套的复杂配置单元数据类型的文件非常麻烦。请参阅有关集合数据类型的配置单元指南部分,该部分解释了默认分隔符^A、^B等,并进一步说明如何将第^D行中的下一行等用于嵌套数据类型。无论如何,使用Ctrl字符手动编辑文件是很困难的。 更好的方法是使用JSON格式的输入文件,并对配置单元表使用jsonserde。下面是我创建示例的方式

创建表doc\u sample\u json id int, 主题数组 行格式SERDE'org.openx.data.jsonserde.jsonserde'

json.txt输入数据

{id:1,主题:[{课程:英语1,分数:[{sem:sem1,分数:5}]},{课程:英语1,分数:[{sem:sem1,分数:10},{sem:sem2,分数:15}]}

将数据本地inpath“/user/docs/json.txt”覆盖加载到表doc\u sample\u json中

配置单元>从doc\u sample\u json中选择*; 好啊 1[{课程:英语1,分数:[{sem:sem1,分数:5}]},{课程:英语1,分数:[{sem:sem1,分数:10},{sem:sem2,分数:15}]

你好,库纳尔,我为疼痛道歉。我正在使用ClouderaVM。如何使用Json jsonserde.jsonserde'。您能解释一下关于相同的问题吗?失败:执行错误,从org.apache.hadoop.hive.ql.exec.ddlstask返回代码1。无法验证serde:org.openx.data.jsonserde.JsonSerDeThis是一个自定义serde jar,您需要将其提供给您的配置单元。几乎没有更多这样的SERD来完成同样的任务。很抱歉,我没有使用Cloudera虚拟机,但要使用任何自定义服务器,基本步骤保持不变。从Google code、github等在线站点下载适合您平台的serde jar。将jar xyz.serde.jsonserde.jar添加到您的配置单元安装或每次运行配置单元cli时。如果您只需搜索向cloudera添加自定义serde JAR,CDH特定的Stepswise信息也应在线提供。
1       [{"course":"'english2'","score":[{"sem":"'sem1'","marks":null}]}]