change the logic of getting orc column count in DFSUtil.java

This commit is contained in:
mingya.wmy 2018-05-23 11:27:44 +08:00 committed by windpiger
parent 4608abe947
commit 9a119ad0ff
3 changed files with 20 additions and 6 deletions

13
.idea/misc.xml Normal file
View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/classes" />
</component>
</project>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@ -486,15 +486,10 @@ public class DFSUtil {
}
private int getAllColumnsCount(String filePath) {
int columnsCount;
final String colFinal = "_col";
Path path = new Path(filePath);
try {
Reader reader = OrcFile.createReader(path, OrcFile.readerOptions(hadoopConf));
String type_struct = reader.getObjectInspector().getTypeName();
columnsCount = (type_struct.length() - type_struct.replace(colFinal, "").length())
/ colFinal.length();
return columnsCount;
return reader.getTypes().get(0).getSubtypesCount();
} catch (IOException e) {
String message = "读取orcfile column列数失败请联系系统管理员";
throw DataXException.asDataXException(HdfsReaderErrorCode.READ_FILE_ERROR, message);