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

时间:2015-06-15 11:02:49

标签: hadoop vertica

我正在尝试将文件从Hadoop复制到Vertica表并获得错误。 问题是相同的副本有时会通过,有时会失败,任何想法?

错误:

  

引起:java.sql.SQLException:[Vertica] VJDBC错误:COPY:输入记录1已被拒绝(找到的列数太少)       在com.vertica.util.ServerErrorData.buildException(未知来源)       在com.vertica.dataengine.VResultSet.fetchChunk(未知来源)       在com.vertica.dataengine.VResultSet.initialize(未知来源)       在com.vertica.dataengine.VQueryExecutor.readExecuteResponse(未知来源)       at com.vertica.dataengine.VQueryExecutor.handleExecuteResponse(Unknown Source)       在com.vertica.dataengine.VQueryExecutor.execute(未知来源)       在com.vertica.jdbc.SStatement.executeNoParams(未知来源)       在com.vertica.jdbc.SStatement.execute(未知来源)       at 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错误:COPY:输入记录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;

3 个答案:

答案 0 :(得分:0)

  

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我们发现了问题:

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

停止此节点问题解决后。

我们发现了2个问题: 节点是“摇摇欲坠”但仍然有ping系统“认为”它还活着 2. Vertica无法从此节点读取文件,但未在

中的文件存在的其他节点上重试