【问题标题】:How to stop nulls from sqoop import (oracle to hive)如何从 sqoop 导入中停止空值(oracle 到 hive)
【发布时间】:2017-05-02 17:30:50
【问题描述】:

从 oracle 导入 sqoop 到 hive 后,我在 hive 中得到空行

在 sqoop --query 中,我提到了 pk 不为 null 的位置。

sqoop 查询:

sqoop import \
--connect "${SQOOP_CONN_STR}" \
--connection-manager "${SQOOP_CONNECTION_MANAGER}" \
--username ${SQOOP_USER} \
--password ${SQOOP_PASSWORD} \
--fields-terminated-by ${SQOOP_DELIM} \
--null-string '' \
--null-non-string '' \
--query \""${SQOOP_QUERY}"\" \
--target-dir "${SQOOP_OP_DIR}" \
--split-by ${SQOOP_SPLIT_BY} \
-m ${SQOOP_NUM_OF_MAPPERS} 1> ${SQOOP_TEMP_LOG} 

【问题讨论】:

  • 您想过滤空行或空列吗?请提供您的 sqoop 命令
  • sqoop 导入 --connect "${SQOOP_CONN_STR}" --connection-manager "${SQOOP_CONNECTION_MANAGER}" --username ${SQOOP_USER} --password ${SQOOP_PASSWORD} --fields-terminated- by ${SQOOP_DELIM} --null-string '' --null-non-string '' --query \""${SQOOP_QUERY}"\" --target-dir "${SQOOP_OP_DIR}" --split-by ${SQOOP_SPLIT_BY} -m ${SQOOP_NUM_OF_MAPPERS} 1> ${SQOOP_TEMP_LOG}
  • 导入命令正确。您在 Hive 查询期间收到 null 吗?

标签: hive sqoop


【解决方案1】:

这是由于字段分隔符的变化。

您在未指定任何字段分隔符的情况下导入 HDFS。因此,它将使用默认逗号。

您创建的 Hive 表可能有 CTRL^A(默认) 作为字段分隔符。

使这些同步,它应该可以工作。

【讨论】:

    猜你喜欢
    • 2019-10-07
    • 2017-07-01
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    • 2016-08-07
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多