2

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、平台、包名、softversion、gathertime、isHidden、isUninstalled),每列以 '\t' 结尾。

mysql 表结构如下 imei:varchar(100), platform:char(1), packagename:varchar(100), softversion:varchar(20)

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

4

2 回答 2

3

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

Sqoop Cookbook 中的示例:

    sqoop export \
  --connect jdbc:mysql://mysql.example.com/sqoop \
  --username sqoop \
  --password sqoop \
  --table cities \
  --columns country,city
于 2014-01-31T11:22:47.910 回答
1
sqoop import --connect jdbc:mysql://localhost/DataBase_Name \
  --username root --table Table_Name --columns "Col1,Col2" \
  -m 1 --target-dir Hdfs_Dir_Name
于 2015-04-30T13:39:18.430 回答