hadoop—通过配置单元导出到oracle表时,字符串和非字符串数据被转换为空字段的“null”

iaqfqrcu  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(601)

我是hadoop新手,我有一个场景,我必须使用sqoop export将数据集/文件从hdfs导出到oracle表。文件中的值为'null',所以表中也会导出相同的值。我想知道在导出时如何将数据库中的“null”替换为空白?

z0qdvdin

z0qdvdin1#

您可以从hive/beeline创建一个tsv文件,在这个过程中,您可以添加null使其为空 --nullemptystring=true 例子: beeline -u ${hhiveConnectionString} --outputformat=csv2 --showHeader=false --silent=true --nullemptystring=true --incremental=true -e 'set hive.support.quoted.identifiers =none; select * from someSchema.someTable where whatever > something' > /Your/Local/Location or EdgeNode/exportingfile.tsv 可以使用sqoop导出中创建的文件导出到oracle表。
也可以用unix sed替换文件中的空值
前任: sed -i s/null//g /Your/file//Your/Local/Location or EdgeNode/exportingfile.tsv

niwlg2el

niwlg2el2#

在oracle中,对于varchars,空字符串和空值的处理是相同的。这就是为什么oracle在内部将空字符串转换为空字符串的原因 varchar . 当“”分配给字符(1)时,它变为“”(字符类型是空白填充字符串)。看看汤姆·凯特是怎么说的:https://asktom.oracle.com/pls/asktom/f?p=100:11:0%3a%3a%3a%3ap11\u问题编号:5984520277372
参见本手册:https://www.techonthenet.com/oracle/questions/empty_null.php

相关问题