Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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 将数据从csv文件中的字符串转换为配置单元表中的bigint_Hive_Hdfs - Fatal编程技术网

Hive 将数据从csv文件中的字符串转换为配置单元表中的bigint

Hive 将数据从csv文件中的字符串转换为配置单元表中的bigint,hive,hdfs,Hive,Hdfs,我有一个csv文件,其中金额字段是一个字符串。在加载到表中时,我想将其转换为Bigint。我知道我可以做cast(column_name as BIGINT),但我应该在哪个阶段做呢 我尝试用amount作为Bigint的数据类型创建表,并加载了文件。当我查询它时,会得到null,因为存在数据类型不匹配 如果有人能告诉我如何转换它,在什么阶段,这将是非常感谢 谢谢 尝试对无符号整数使用强制转换,例如 强制转换(列名称为无符号整数) 如果csv的金额字段为字符串,则表示您的数据将位于双引号内“12

我有一个csv文件,其中金额字段是一个字符串。在加载到表中时,我想将其转换为Bigint。我知道我可以做cast(column_name as BIGINT),但我应该在哪个阶段做呢

我尝试用amount作为Bigint的数据类型创建表,并加载了文件。当我查询它时,会得到null,因为存在数据类型不匹配

如果有人能告诉我如何转换它,在什么阶段,这将是非常感谢


谢谢

尝试对无符号整数使用强制转换,例如

强制转换(列名称为无符号整数)


如果csv的金额字段为字符串,则表示您的数据将位于双引号内“12345”。 因此,在这种情况下,您不能将数据加载为int/bigint。因为在运行LOAD命令时,无法对列的数据类型进行任何修改

There are two ways of doing this:

1.) Make your data(amount field) in csv as normal value instead of keeping it as string field.
    Then load your data into the table.

2.) First load your data as string field, then create another table with amount field as int/bigint then do:
插入到新表中,从旧表中选择col1、col2..cast(coln作为bigint)…colm

希望这有助于