mysql - sqoop 将特定列从 hdfs 导出到 mysql

标签 mysql sqoop

SQOOP支持将特定列从hdfs导出到mysql吗?

例如现在我有一个像这样的 hdfs 文件:

866138000211400 4   com.spreadst.validationtools    1   1310090804  0   0
866138000211400 4   com.spreadst.validdate  1   1310090804  0   0
866138000211400 4   com.spreadtrum.android.eng  1   1310090804  0   0
866138000211400 4   com.tencent.mm  261 1310090804  0   0
866138000211400 4   com.tencent.mobileqq    13  1310090804  0   0
866138000211400 4   com.thunderst.radio 1   1310090804  0   0
866138000211400 4   com.uucun51111531.android.cms   2013080901  1310090804  0   0
866138000211400 4   com.yeezonetech.firewall    1   1310090804  0   0
866138000211400 4   com.youku.phone 41  1310090804  0   0
866138000211400 4   org.openintents.cmfilemanager   20  1310090804  0   0

每行有 7 列(imei、platform、packagename、softversion、gathertime、isHidden、isUninstalled),每列以 '\t' 结尾。

mysql表结构如下: imei:varchar(100),平台:char(1),包名:varchar(100),软件版本:varchar(20)

如何直接使用 sqoop 将 hdfs 文件导出到 mysql 并包含 4 个特定列?

最佳答案

是的,使用 --columns 参数指定要导入的列。

来自 Sqoop Cookbook 的示例:

    sqoop export \
  --connect jdbc:mysql://mysql.example.com/sqoop \
  --username sqoop \
  --password sqoop \
  --table cities \
  --columns country,city

关于mysql - sqoop 将特定列从 hdfs 导出到 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19289381/

相关文章:

java - MySQL 查询使用逻辑操作获取数据列表

mysql - 更新 SQL 中的字段

mysql - Sqoop - 如果使用 order by 和 limit 1,则导入最大值查询失败

java - 无法在 SQOOP 中创建 JOB

hadoop - 在 Hadoop 集群上使用 Oozie 运行 Sqoop Action 时出现问题

mysql - 有没有办法将几个不同的查询(几乎相同)压缩成一个?

MySql:如何使用 mysql 查询首先显示印度和其他国家/地区的升序?

php - PHP 的内部连接

postgresql - 在 Docker 中使用 Sqoop 导入 PostgreSQL

mysql - 尝试使用 sqoop 从 mysql 导入表