sqoop:如何在导入到hdfs期间添加一个具有默认非空值的额外列?

olhwl3o2  于 2021-06-04  发布在  Hadoop
关注(0)|答案(2)|浏览(261)

我有一个包含以下列的sql表:

title, author, genre, rating

在使用sqoop将sql到csv文件导入hdfs时,我需要添加一个额外的非空列 src 对于每个输入记录都有一个默认值“online”。如何在sqoop中实现这一点?因此,生成的记录应具有以下格式:

src, title, author, genre, rating

哪里 src =“在线”每个输出记录

wn9m85ua

wn9m85ua1#

正如我在sqoop中发现的,下面的sql使用非空的默认值创建了额外的列 im :

sqoop --query "select 'online' as src, title, author, genre, rating from table AND \$CONDITIONS" --map-column-java src=String --target-dir /data/input
omqzjyyz

omqzjyyz2#

在sqoop中,我们不能直接得到这样的默认值。可能在sqoop查询中我们可以给出sql命令。我可以建议另一种方法。
首先按原样导入表并执行以下转换
a=使用pigstorage(',')作为(标题、作者、流派、评级)加载sample.csv;
b=foreach a生成“在线”作为源,*;
使用pigstorage(',')将b存储到'some location';
它将在每一行中提供在线列作为默认值。它将满足您的要求

相关问题