Sqoop:如何在导入HDFS期间添加一个带有默认非空值的额外列?

时间:2014-07-28 14:38:00

标签: hadoop sqoop

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

title, author, genre, rating

使用Sqoop从SQL导入CSV文件到HDFS我需要为每个输入记录添加一个额外的非null src,其默认值为“online”。 如何在Sqoop中做到这一点? 因此,结果记录应具有以下格式:

src, title, author, genre, rating

其中src =“在线”为每个输出记录

2 个答案:

答案 0 :(得分:1)

直接在sqoop中,我们无法获得默认值。可能在sqoop查询中我们可以给出SQL命令。我可以建议替代方式。

首先按原样导入表并执行转换

A =使用PigStorage(',')加载sample.csv为(标题,作者,流派,评级);

B = foreach A generate' online'作为来源,*;

将B存储到某个位置'使用PigStorage(',');

它会将每行的在线列作为默认值。它将满足您的要求

答案 1 :(得分:1)

我发现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