Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sqoop导入替换mysql的特殊字符_Mysql_Hive_Special Characters_Sqoop - Fatal编程技术网

Sqoop导入替换mysql的特殊字符

Sqoop导入替换mysql的特殊字符,mysql,hive,special-characters,sqoop,Mysql,Hive,Special Characters,Sqoop,在mysql中,我有1000个表,每个表中有超过100000条记录。这些表有300-500列 有些表的列具有特殊字符,如列名中的.dot和space 现在,我想执行sqoop导入,并在一个单发查询中在HDFS中创建一个配置单元表,如下所示 sqoop import --connect ${domain}:${port}/$(database) --username ${username} --password ${password}\ --table $(table) -m 1 --hive-i

在mysql中,我有1000个表,每个表中有超过100000条记录。这些表有300-500列

有些表的列具有特殊字符,如列名中的.dot和space

现在,我想执行sqoop导入,并在一个单发查询中在HDFS中创建一个配置单元表,如下所示

sqoop import --connect ${domain}:${port}/$(database) --username ${username} --password ${password}\
--table $(table) -m 1 --hive-import --hive-database ${hivedatabase} --hive-table $(table) --create-hive-table\
--target-dir  /user/hive/warehouse/${hivedatabase}.db/$(table) 
在此之后,将创建配置单元表,但当我查询该表时,它显示错误为

此错误输出是一个示例输出

Error while compiling statement: FAILED: RuntimeException java.lang.RuntimeException: cannot find field emp from [0:emp.id, 1:emp.name, 2:emp.salary, 3:emp.dno]
在执行sqoop导入时,如何用_下划线替换.dot。我想动态地这样做

使用sqoop import\with-query选项,而不是-table和in-query Use函数

sqoop导入-连接${domain}:${port}/$数据库-用户名${username}-密码${password}\ -查询“选择列1,替换列2”,“作为表中的列”


或者不建议编写一个可以查找和替换的shell脚本。到Grep commandat/user/hive/warehouse/${hivedatabase}.db/$table

我尝试了-Query选项,但使用select Query替换了许多列名,这就是我的问题所在。请原谅我也问了一些可能的问题。我对Hadoop有点陌生。我如何使用信息架构编写动态查询。列您可以获得列名和列数据类型,并对“char”的列数据类型有偏见,“varchar”使用Repace函数。。。。