mysql - 通过 Sqoop 将带有自定义分隔符的 HDFS 文件导出到 Mysql

标签 mysql hadoop hdfs sqoop

  • 我有这样的文件:

    1^%~binod^*~1^%~ritesh^*~1^%~shisir^*~1^%~budhdha^*~1^%~romika^*~1^%~rubeena^*~
    
  • 其中 --input-fields-terminated-by '^%~' --input-lines-terminated-by '^*~'。

  • 我尝试通过命令导出:

    sqoop export --connect jdbc:mysql://localhost/sqoop --username root -P --table makalu --export-dir sqoop/makalu --input-fields-terminated-by '^%~' --input-lines-terminated-by '^*~'
    
  • 但是它写了一行:

id|name
1|%~binod

在 MySQL 中。

  • 现在我的问题是解决这种情况的命令是什么。

最佳答案

参数 --input-fields-terminated-by--input-lines-terminated-by 接受单个字符

当您在终端中执行导出命令时,您会看到以下警告

02/03 18:55:21 WARN sqoop.SqoopOptions: Character argument ^%~ has multiple characters; only the first will be used.
15/02/03 18:55:21 WARN sqoop.SqoopOptions: Character argument ^*~ has multiple characters; only the first will be used.

更新:

我观察到的一件事是,如果行终止不是\n 或新行,那么它只会在您导出时将一条记录插入数据库。我尝试了几个与字段和行终止的组合,但仅在行终止的情况下\n 数据被导出到 RDBMS 表中

甚至尝试使用 --input-lines-terminated-by--lines-terminated-by 参数但没有成功。

我已经测试过了

Cloudera CDH-5.0.0-1
Sqoop version: 1.4.4-cdh5.0.0

我唯一能找到的是 this .

关于mysql - 通过 Sqoop 将带有自定义分隔符的 HDFS 文件导出到 Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28298817/

相关文章:

MySQL : When stored procedure parameter name is the same as table column name

hadoop - Windows 平台上是否有 Hortonwork Data 平台的管理器

hadoop - Apache Spark JDBCRDD 使用 HDFS 吗?

mysql - Hive Metastore 未创建 MYSQL 或 Derby 连接

hadoop - NameNode 地址的 URI 无效,s3a 不是模式 'hdfs'

linux - 如何使用 Linux 命令获取 Ambari HDFS 中文件夹的创建日期?

php - MySQL 在第 15 行添加新行时删除第一行

mysql - Sequelize (v1.5) 和 Node

apache-spark - Spark saveAsNewAPIHadoopFile 适用于本地模式,但不适用于集群模式

php - WordPress - 从存储为 blob 数据的数据库获取图像