Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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 Apache配置单元字符串拆分_Hadoop_Hive_Bigdata - Fatal编程技术网

Hadoop Apache配置单元字符串拆分

Hadoop Apache配置单元字符串拆分,hadoop,hive,bigdata,Hadoop,Hive,Bigdata,这个表只包含一个字符串列。我想使用“,”拆分每一行,然后使用Apache Hive将它们放在一个单独的表中。我应该如何做到这一点?一个非常简单的方法是: create table database.new_table as select split(col_value,',')[0] as column_1 , split(col_value,',')[1] as column_2 , split(col_value,',')[2] as column_3 -- and so no till

这个表只包含一个字符串列。我想使用“,”拆分每一行,然后使用Apache Hive将它们放在一个单独的表中。我应该如何做到这一点?

一个非常简单的方法是:

create table database.new_table as
select split(col_value,',')[0] as column_1 
, split(col_value,',')[1] as column_2
, split(col_value,',')[2] as column_3
-- and so no till your nth column
, split(col_value,',')[10]as column_11 
from database.oldtable;
所有列都将是字符串类型。如果希望列不是字符串,而不是按如下方式进行转换:

, select cast(split(col_value,',')[2] as double) as column_3
您可以强制转换hive提供的任何数据类型,int、bigint、double

带子查询

create table database.new_table as
select A[0] as column_1,
       A[1] as column_2
       -- and so on till your nth column
from (
    select split(col_value,',') as A 
    from database.oldtable ) x;

使用一个调用和一个子查询拆分会更好吗?@Fivetentalor,你是对的。我在asnwer中的剪切和粘贴工作做得很糟糕,并留下了那些额外的电话。我已将答案编辑为正确答案。此外,如果此答案适用于,请选择“作为答案”。非常感谢。嘿@invoketheshell,我在你的答案中添加了一个编辑来显示我的想法。随便你怎么想都可以。谢谢你试过阅读蜂巢文档吗?