为什么 Sqoop 在从 SQL 数据库导入数据时忽略列名

Why does Sqoop ignore column names when importing data from SQL Database

我有以下命令将数据从我的 SQL 数据库传输到我的 Azure Data Lake:

sqoop-import --connect "jdbc:sqlserver://MYDB.database.windows.net:1433;username=MYUSERNAME@MYDB;password=MYPW;database=MYDb" --table TABLENAME --target-dir adl://TESTTT.azuredatalakestore.net/Sqoop/TABLENAME

结果很好,除了它不包含列名,有没有办法包含这些列名?

通常情况下,Sqoop 导入在将数据导入 HDFS 时不支持列名。如果您想将模式与数据一起携带,那么您可以考虑使用 Sqoop 将数据导入 Avro 文件格式。

其他解决方法是,您可以使用 Sqoop Hive 导入将整个 table 作为 Hive table 在您的 Hadoop 环境中导入。

这是 Hive 导入的好阅读参考。

  1. Sqoop Hive Import
  2. Sqoop Importing data into Hive.