Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.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
Hive 蜂巢结构图_Hive_Hiveql_Udf - Fatal编程技术网

Hive 蜂巢结构图

Hive 蜂巢结构图,hive,hiveql,udf,Hive,Hiveql,Udf,我有一个样本数据如下 Id(字符串)、删除属性(字符串) ================ 1,foo.prop=foo值| bar.prop=bar值 2,foo2.prop=foo2值| bar2.prop=bar2值 这是我的dml (一) (三) (五) (六) 1{“:”,“:null,”:null} 你知道我做错了什么吗?你可以试试这个: str_to_map(delimproperties,'[|]','=') 您需要转义“|”字符,因为它在Java正则表达式中具有特殊意义,这里

我有一个样本数据如下 Id(字符串)、删除属性(字符串)
================

1,foo.prop=foo值| bar.prop=bar值
2,foo2.prop=foo2值| bar2.prop=bar2值

这是我的dml
(一)

(三)

(五)

(六)

1{“:”,“:null,”:null}

你知道我做错了什么吗?

你可以试试这个:

str_to_map(delimproperties,'[|]','=')

您需要转义
“|”
字符,因为它在Java正则表达式中具有特殊意义,这里的
string.split(…)
使用它

这应该起作用:

insert into table final_data select Id,
str_to_map(delimproperties,'\\|','=')
from test_data;

有人知道为什么这不应该起作用吗?解释一下这为什么会起作用会有帮助
alter table final_data add columns (properties map<string,string>);
load data local inpath 'file:/c:/data/sample.csv' into table test_data;
insert into table final_data select Id,
str_to_map(delimproperties,'|','=')
from test_data;
Select * from final_data limit 1;
str_to_map(delimproperties,'[|]','=')
insert into table final_data select Id,
str_to_map(delimproperties,'\\|','=')
from test_data;