Sqoop 将特定列从 hdfs 导出到 mysql 无法正常工作
Sqoop Export specific columns from hdfs to mysql is not working properly
我的 HDFS 文件包含 5 列。
emp_no,birth_date,first_name,last_name,hire_date
我想导出它只有 3 列:
emp_no,first_name,last_name
我正在使用
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
但我在 MySQL table.
中得到 emp_no
、birth_date
和 first_name
我的 table 中有 3 列,但我想跳过的一列在 sqoop export
中没有出现 --columns
我解决了我的问题。其实我误解了选项 --columns for export.
使用 --columns 导出选项,我们可以 select 列的子集或控制 table 列(或目标,例如 mysql 列)而不是 HDFS 列的顺序。
此选项决定 HDFS 源列与目标的 --columns 选项中提到的列的绑定 table。
例如如果我在 sqoop 命令中提到 --columns "col2,col3,col1"
其中 col1、col2、col3 是 mysql table 的列
然后它将 col2 与 HDFS 源的第一列绑定,将 col3 与 HDFS 源的第二列绑定,依此类推..
我的 HDFS 文件包含 5 列。
emp_no,birth_date,first_name,last_name,hire_date
我想导出它只有 3 列:
emp_no,first_name,last_name
我正在使用
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
但我在 MySQL table.
中得到emp_no
、birth_date
和 first_name
我的 table 中有 3 列,但我想跳过的一列在 sqoop export
--columns
我解决了我的问题。其实我误解了选项 --columns for export.
使用 --columns 导出选项,我们可以 select 列的子集或控制 table 列(或目标,例如 mysql 列)而不是 HDFS 列的顺序。
此选项决定 HDFS 源列与目标的 --columns 选项中提到的列的绑定 table。
例如如果我在 sqoop 命令中提到 --columns "col2,col3,col1" 其中 col1、col2、col3 是 mysql table 的列
然后它将 col2 与 HDFS 源的第一列绑定,将 col3 与 HDFS 源的第二列绑定,依此类推..