Sqoop 将特定列从 hdfs 导出到 mysql 无法正常工作

Dul*_*ari 1 sqoop

我的 HDFS 文件包含 5 列。

emp_no,birth_date,first_name,last_name,hire_date
Run Code Online (Sandbox Code Playgroud)

我想导出它只有 3 列:

emp_no,first_name,last_name
Run Code Online (Sandbox Code Playgroud)

我正在做

sqoop export
  --connect jdbc:mysql://mysql.example.com/sqoop
  --username sqoop
  --password sqoop
  --table employees
  --columns "emp_no,first_name,last_name"
  --export-dir /user/dataset/employees
Run Code Online (Sandbox Code Playgroud)

但是我得到emp_no,birth_date并且first_name在 MySQL 表中。

我得到我的表3列,但一个专栏中,我想跳过不与发生--columnssqoop export

Dul*_*ari 5

我解决了我的问题。实际上我误解了选项 --columns 用于导出。

使用 --columns 导出选项,我们可以选择列的子集或控制表列(或目标,例如 mysql 列)而不是 HDFS 列的顺序。

此选项决定 HDFS 源列与目标表的 --columns 选项中提到的列的绑定。

例如,如果我在 sqoop 命令中提到 --columns "col2,col3,col1" 其中 col1,col2,col3 是 mysql 表的列

然后它将 col2 与 HDFS 源的第一列绑定,col3 与 HDFS 源的第二列绑定,依此类推。