Sqoop 导入语句
Posted
技术标签:
【中文标题】Sqoop 导入语句【英文标题】:Sqoop import statement 【发布时间】:2017-09-17 18:13:15 【问题描述】:下面提到的 sqoop 导入语句前几天对我有用,今天同样的语句显示错误。下面是错误和导入语句。
错误:
您的 SQL 语法有错误;检查与您的 mysql 服务器版本相对应的手册,了解在 'sqoop import
附近使用的正确语法
sqoop import \
--connect jdbc:mysql://localhost/loudacre \
--username training --password training \
--table device \
-- target-dir /loudacre/device
-m 1
【问题讨论】:
【参考方案1】:您在导入命令中缺少where $CONDITIONS'
。 where $CONDITIONS'
是强制性的,$CONDITIONS
应该是大写。请进行此更正,然后重试。
【讨论】:
【参考方案2】:你错过了第四行末尾的“\”:
你能运行这个并检查一次吗?
sqoop 导入\ --连接 jdbc:mysql://localhost/loudacre \ --用户名培训--密码培训\ --表设备\ --目标目录/loudacre/设备\ -m 1【讨论】:
【参考方案3】:是的,您可能会遇到说 --target-dir /loudacre/device 已经存在的错误。当您第一次运行命令时,因为在 hdfs 中没有定义目标目录,脚本运行正常,但第二次因为目标目录已经在 hdfs 目录中可用,它会抛出错误,说目录已经存在。
解决此错误的解决方案: 1. 提供另一个新目录或删除现有目录并再次尝试脚本。 2.也可以在sqoop append模式或者overwride模式下导入mysql数据。请参阅以下链接以供参考: Using sqoop import, How to append rows into existing hive table?
如果有效,请告诉我。
【讨论】:
【参考方案4】:错误解决了伙计们。结果是,当您将命令从记事本复制粘贴到终端时,“更改并导致错误。我们需要在终端中明确写入”。
【讨论】:
以上是关于Sqoop 导入语句的主要内容,如果未能解决你的问题,请参考以下文章
我们可以使用 spark-sql 或 apache spark 运行 sqoop 导入语句吗