我有一个包含以下列的sql表:
title, author, genre, rating
在使用sqoop将sql到csv文件导入hdfs时,我需要添加一个额外的非空列 src 对于每个输入记录都有一个默认值“online”。如何在sqoop中实现这一点?因此,生成的记录应具有以下格式:
src
src, title, author, genre, rating
哪里 src =“在线”每个输出记录
wn9m85ua1#
正如我在sqoop中发现的,下面的sql使用非空的默认值创建了额外的列 im :
im
sqoop --query "select 'online' as src, title, author, genre, rating from table AND \$CONDITIONS" --map-column-java src=String --target-dir /data/input
omqzjyyz2#
在sqoop中,我们不能直接得到这样的默认值。可能在sqoop查询中我们可以给出sql命令。我可以建议另一种方法。首先按原样导入表并执行以下转换a=使用pigstorage(',')作为(标题、作者、流派、评级)加载sample.csv;b=foreach a生成“在线”作为源,*;使用pigstorage(',')将b存储到'some location';它将在每一行中提供在线列作为默认值。它将满足您的要求
2条答案
按热度按时间wn9m85ua1#
正如我在sqoop中发现的,下面的sql使用非空的默认值创建了额外的列
im
:omqzjyyz2#
在sqoop中,我们不能直接得到这样的默认值。可能在sqoop查询中我们可以给出sql命令。我可以建议另一种方法。
首先按原样导入表并执行以下转换
a=使用pigstorage(',')作为(标题、作者、流派、评级)加载sample.csv;
b=foreach a生成“在线”作为源,*;
使用pigstorage(',')将b存储到'some location';
它将在每一行中提供在线列作为默认值。它将满足您的要求