【发布时间】:2016-08-24 16:04:42
【问题描述】:
我们正在尝试导入一个平面大型机文件以加载到配置单元表中。我能够使用 sqoop import-mainframe 将其导入并加载到 hive 表中,但我的整个文件都放在一列中,而且该列中也没有名称。
是否可以在 sqoop import 命令本身中定义表结构?
我们正在使用以下命令从大型机导入并将其加载到 Hive 表中
sqoop import-mainframe --connect mainframe.com --dataset mainframedataset --username xxxxx -P --hive-import --create-hive-table --hive-table table1 --warehouse-dir /warehouse/
大型机数据示例:
ASWIN|1234|1000.00
XXXX|1235|200.00
YYYY|1236|150.00
sqoop生成的Hive表创建脚本:
CREATE TABLE Employee ( DEFAULT_COLUMN STRING) COMMENT 'Imported by sqoop on 2016/08/26 02:12:04' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001' LINES TERMINATED BY '\012' STORED AS TEXTFILE
【问题讨论】:
-
分享
mainframedatasetdataset 的样本数据。 列中没有名称是什么意思? -
还将
--verbose放在命令末尾(查看扩展日志)。它将显示 CREATE TABLE 语句。也分享该声明。 -
感谢开发者的回复!!。我的大型机数据集包含以下示例数据
ASWIN|1234|1000.00
XXXX|1235|200.00
YYYY|1236|150.00
我需要移动这个使用 sqoop 命令到 Hadoop 配置单元表的日期,并希望将表定义为表名称为员工,列为 (Name String, Empid int,Amount float)
但现在在 sqoop -hive-import --create- hive-table 没有提供定义列名的选项有没有办法这样做? -
我尝试了 --verbose 语句,下面是创建表时发生的情况 16/08/26 02:12:04 DEBUG hive.TableDefWriter: Create statement: CREATE TABLE
Employee(@987654326 @ STRING) COMMENT 'Imported by sqoop on 2016/08/26 02:12:04' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001' LINES TERMINATED BY '\012' STORED AS TEXTFILE 所有三列都存储为单个列名为“DEFAULT_COLUMN”的列 -
我更新了你的问题。这就是你想要的。对吗?
标签: sqoop