0

我正在使用 Sqoop2 (Sqoop 1.99.3-cdh5.1.0) 从 postgresql 数据库中导入数据。该作业成功完成并在 HDFS 中创建文本文件。输出文件是带单引号的 CSV,我想将输出配置为不带引号的制表符分隔。

Sqoop2 的输出格式可以配置吗?

4

2 回答 2

1

Sqoop2 似乎还不允许配置输出格式,

Sqoop 允许在此处使用命令行参数配置输出格式:http: //sqoop.apache.org/docs/1.4.4/SqoopUserGuide.html#_large_objects(也感谢@purpletech 用于注释中的粘贴)

对于 Cloudera Hadoop 用户:Sqoop 与 Sqoop2 一起安装,可以在安装 CDH 的位置找到。Hue 为 Sqoop2 提供了一个 Web 界面,并且必须从命令行调用 Sqoop1。

于 2014-08-07T01:17:44.770 回答
0

我有同样的问题,所以我最终选择了 Sqoop1。Sqoop2 很棒,但也有一些缺点,例如:

  • 您无法在 Oozie 中计划 Sqoop2 作业,因此您只能手动运行它。
  • 您不能将数据直接加载到 Hive 或 HBase 中,只能加载到文件中。
  • 您不能配置输出分隔符和附件。

所以我推荐你使用 sqoop1,它很简单:

sqoop import --connect xxxx --username xxxx --password xxxx --query select * from xxx --target-dir /tmp/xxx -m 1 --fields-terminated-by | --enclosed-by \0 

如果您使用 Hue 作业,最好不要将此命令写入 Sqoop 作业的命令字段,而是将每个命令插入单独的参数中(例如第一个参数是导入,第二个 --connect,第三个连接字符串然后 --username 等。 )。

希望它有帮助,祝你好运

于 2014-08-07T08:22:37.933 回答