sqoop import --connect jdbc:mysql://zhaosai:3306/mydb --username root --password jqe6b6 --table weathe --target-dir /user/weathe -m 1 --fields-terminated-by “;” --hive-import --hive-table weathe 导入数据后查询为空
时间: 2023-10-03 18:04:01 浏览: 48
你使用的是Sqoop工具将MySQL中的数据导入到Hive表中。从你的命令中可以看出,你指定了MySQL中的表名为"weathe",导入到Hive表中的表名也为"weathe"。在这种情况下,如果导入操作执行正确并且没有错误提示,那么最可能的原因是数据没有成功导入到Hive表中。在这种情况下,你需要检查以下几点:
1. 检查Hive表的结构是否与MySQL表的结构匹配。请注意列名、数据类型和顺序是否完全一致。
2. 检查导入操作是否成功。你可以在Sqoop导入命令后添加"--verbose"选项,以便查看详细的导入日志。如果导入操作失败,你应该能够在日志中看到错误消息。
3. 检查Hive表是否正确创建并且在正确的位置。你可以在Hive中运行"show tables"命令来查看已经创建的表,或者在HDFS中使用"ls"命令来查看数据是否正确导入到了指定的目录中。
4. 检查Hive表中是否有数据。你可以在Hive中运行"select count(*) from weathe"命令来查看表中是否有数据。
希望这些提示能够帮助你找到问题所在。
相关问题
检查错误sqoop import --connect jdbc:mysql://zhaosai:3306/mydb --username root --password jqe6b6 --table news --target-dir /user/news --fields-terminated-by “;” --hive-import --hive-table news -m 1
在这个命令中,参数 `--fields-terminated-by` 后面的分隔符使用了中文的双引号 `";"`,应该改为英文的双引号 `";"`。即命令应该改为:
```
sqoop import --connect jdbc:mysql://zhaosai:3306/mydb --username root --password jqe6b6 --table news --target-dir /user/news --fields-terminated-by ";" --hive-import --hive-table news -m 1
```
另外,`--hive-table` 指定的表名需要在 Hive 中已经存在。如果不存在,需要先创建。而且,如果 `--hive-import` 指定了,那么 `--target-dir` 就不需要指定了,因为 sqoop 会自动将数据导入到 Hive 的表中。
sqoop import --connect jdbc:mysql://zhaosai:3306/mydb --username root --password jqe6b6 --table news --target-dir /user/news --fields-terminated-by “;” --hive-import --hive-table news -m 1
这是一个Sqoop命令,用于将MySQL中的news表导入到Hive中。具体参数如下:
--connect:指定JDBC连接字符串。
--username:指定连接用户名。
--password:指定连接密码。
--table:指定要导入的表。
--target-dir:指定导入后的HDFS目录。
--fields-terminated-by:指定字段间的分隔符。
--hive-import:表示导入到Hive。
--hive-table:指定导入到Hive的表名。
-m:指定并发导入的任务数。
在执行此命令之前,请确保已安装并配置好Sqoop。