我有一个包含以下列的SQL表:
title, author, genre, rating
使用Sqoop从SQL导入CSV文件到HDFS我需要为每个输入记录添加一个额外的非null 列src
,其默认值为“online”。
如何在Sqoop中做到这一点?
因此,结果记录应具有以下格式:
src, title, author, genre, rating
其中src
=“在线”为每个输出记录
答案 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