【问题标题】:Vertica: Input record 1 has been rejected (Too few columns found)Vertica:输入记录 1 已被拒绝(找到的列太少)
【发布时间】:2015-06-17 18:48:44
【问题描述】:

我正在尝试将文件从 Hadoop 复制到 Vertica 表并出现错误。 问题是同一个副本有时通过有时失败,知道吗?

错误:

原因:java.sql.SQLException:[Vertica]VJDBC 错误:复制:输入记录 1 已被拒绝(找到的列太少) 在 com.vertica.util.ServerErrorData.buildException(未知来源) 在 com.vertica.dataengine.VResultSet.fetchChunk(未知来源) 在 com.vertica.dataengine.VResultSet.initialize(未知来源) 在 com.vertica.dataengine.VQueryExecutor.readExecuteResponse(未知来源) 在 com.vertica.dataengine.VQueryExecutor.handleExecuteResponse(未知来源) 在 com.vertica.dataengine.VQueryExecutor.execute(未知来源) 在 com.vertica.jdbc.SStatement.executeNoParams(未知来源) 在 com.vertica.jdbc.SStatement.execute(未知来源) 在 org.springframework.jdbc.core.JdbcTemplate$1ExecuteStatementCallback.doInStatement(JdbcTemplate.java:420) 在 org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:395) ... 27 更多 原因:com.vertica.util.ServerException:[Vertica]VJDBC 错误:复制:输入记录 1 已被拒绝(找到的列太少) ... 37 更多

查询:

COPY temp__FACT (ACCOUNT_ID,VISIT_ID,CAMPAIGN_SEQ,EVENT_SEQ) 
SOURCE public.Hdfs(url='DATA-r-00000') DELIMITER AS ',' ENCLOSED BY '"' 
REJECTMAX 1 ABORT ON ERROR DIRECT NO COMMIT;

【问题讨论】:

    标签: hadoop vertica


    【解决方案1】:

    COPY:输入记录 1 已被拒绝(找到的列太少)

    检查列数是否正确。我建议使用拒绝文件或拒绝表。

    【讨论】:

    • 我查过了,没问题。正如我所说,同一行通过 10 次尝试中的 9 次。
    • 您是否创建了拒绝文​​件或拒绝表?
    • 什么是被拒绝的文件或表?
    【解决方案2】:

    因此,既然您检查了列数,请确保您的分隔符不在输入中。

    【讨论】:

    • 分隔符没问题。正如我所说,同一行通过 10 次尝试中的 9 次。
    【解决方案3】:

    我们发现了问题:

    Hadoop 中的一个节点“不稳定”,因此每次 Vertica 访问该节点时,文件都是空的。

    停止这个节点后问题解决了。

    我们发现了 2 个问题: 1. 节点“摇晃”,但仍然有 ping 系统“认为”它还活着 2. Vertica 无法从该节点读取文件,但没有在文件存在的其他节点上重试

    【讨论】:

      猜你喜欢
      • 2018-09-06
      • 2016-12-23
      • 1970-01-01
      • 1970-01-01
      • 2022-12-18
      • 2018-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多