【问题标题】:Exporting NULL Values from Hive to Teradata将 NULL 值从 Hive 导出到 Teradata
【发布时间】:2016-11-15 00:36:50
【问题描述】:

我在 Hive 中有一个表,其中某些列具有 NULL 值,我正在使用 Teradata 连接器将表从 Hadoop 导出到 Teradata。我的问题是 NULL 值被视为字符串 NULL 而不是 NULL。如何将 NULL 值直接导出到 Teradata?请帮忙。

【问题讨论】:

  • Hive 中的表是如何定义的?特别是,是否为“serialization.null.format”指定了某些内容?
  • 没有使用 serialization.null.format。它是一个从现有 CTAS 插入值的简单表。谢谢!
  • 您是否考虑过使用适合与 COALESCE() 结合的列域中不存在的数据类型的标记值?如果您无法获得标准 sqoop 参数以与 Teradata Connector for Hadoop 一起使用,这是一种解决方法。

标签: hadoop hive teradata sqoop


【解决方案1】:

您是否在导出命令中使用input-null-string 参数?根据documentation

--input-null-string 和 --input-null-non-string 参数是可选的。如果未指定 --input-null-string,则字符串“null”将被解释为字符串类型列的 null。如果未指定 --input-null-non-string,则字符串“null”和空字符串都将被解释为非字符串列的 null。请注意,如果由 --input-null-non-string 指定,除了其他字符串之外,空字符串对于非字符串列将始终解释为 null。

【讨论】:

  • 感谢您的评论杰米!我正在使用 Teradata Hadoop 连接器而不是弯腰。不确定此参数是否适用于 TD 连接器。是吗?
  • 对不起,我不知道这是否可能。我以为你在使用 Sqoop,因为你这样标记了问题。
  • 我认为适用于 Hadoop 的 Teradata 连接器正在使用 sqoop,并在 sqoop 通常支持的参数之上提供了一组额外的参数。 Teradata 连接器(或 Cloudera 的连接器)的文档对支持哪些附加参数含糊不清。可能值得在这里尝试这个建议。
【解决方案2】:

可以通过在 teradata hadoop 连接器中使用 -null 字符串参数(可选)来导出 NULL 值。正如 Rob 在 cmets 部分中所建议的那样。

【讨论】:

    猜你喜欢
    • 2015-07-17
    • 2015-03-20
    • 2017-07-01
    • 2016-03-17
    • 2013-01-09
    • 1970-01-01
    • 2016-11-15
    • 1970-01-01
    • 2018-02-13
    相关资源
    最近更新 更多