首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将数据导入包含空格的配置单元

将数据导入包含空格的配置单元
EN

Stack Overflow用户
提问于 2013-01-15 21:10:15
回答 1查看 5.1K关注 0票数 2

我正在将数据从csv文件导入到配置单元。我的表包含字符串和整数。然而,在我的输入文件中,it的两边有空格,所以它看起来像这样:

代码语言:javascript
代码运行次数:0
运行
复制
some string,     2    ,another string  ,    7    , yet another string

不幸的是,我无法控制提供文件的程序的格式。

当我使用(例如)导入数据时:

代码语言:javascript
代码运行次数:0
运行
复制
CREATE TABLE MYTABLE(string1 STRING, alpha INT, string2 STRING, beta INT, string3 STRING) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','

然后我所有的整数都被设置为NULL。我假设这是因为多余的空格导致解析失败。有什么办法可以解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-16 04:52:05

您可以执行多阶段导入。在第一阶段,将所有数据保存为STRING,在第二阶段使用trim()删除空格,然后将数据保存为INT。您还可以考虑使用Pig将源文件中的数据作为原始文本读取,然后使用正确的数据类型将其写入Hive。

编辑

如果您可以将源文件作为外部表指向,也可以在一次遍历中完成此操作。

代码语言:javascript
代码运行次数:0
运行
复制
CREATE TABLE myTable(
    string1 STRING, alpha STRING, string2 STRING, beta STRING, string3 STRING
) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '\\server\path\file.csv'

INSERT INTO myOtherTable
SELECT string1,
       CAST(TRIM(alpha) AS INT),
       string2,
       CAST(TRIM(beta) AS INT),
       string3
FROM myTable;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14338495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档