我正在尝试将文件从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;
答案 0 :(得分:0)
COPY:输入记录1已被拒绝(找到的列数太少)
检查列数是否正确。我建议使用拒绝文件或拒绝表格。
答案 1 :(得分:0)
因此,既然您检查了列数,请确保您的分隔符不在输入中。
答案 2 :(得分:0)
我们发现了问题:
Hadoop中的一个节点“不稳定”,因此每次Vertica访问此节点时文件都是空的。
停止此节点问题解决后。
我们发现了2个问题: 节点是“摇摇欲坠”但仍然有ping系统“认为”它还活着 2. Vertica无法从此节点读取文件,但未在
中的文件存在的其他节点上重试