【问题标题】:Sqoop: How to add an extra column with default non-null value during import to HDFS?Sqoop:如何在导入到 HDFS 期间添加具有默认非空值的额外列?
【发布时间】:2014-07-29 17:04:09
【问题描述】:

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

title, author, genre, rating

在使用 Sqoop 从 SQL 到 CSV 文件导入 HDFS 时,我需要添加一个额外的 non-nullsrc,该列对于每个输入记录都有一个默认值“在线”。 如何在 Sqoop 中做到这一点? 因此,结果记录应具有以下格式:

src, title, author, genre, rating

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

【问题讨论】:

    标签: hadoop sqoop


    【解决方案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
    

    【讨论】:

      【解决方案2】:

      直接在 sqoop 中我们无法获得这样的默认值。可能在sqoop查询中我们可以给出SQL命令。我可以建议其他方式。

      先按原样导入表格,然后进行以下转换

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

      B = foreach A 生成 'online' 作为源,*;

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-07
        • 1970-01-01
        • 1970-01-01
        • 2015-04-21
        • 2022-01-13
        相关资源
        最近更新 更多