TestInputPath.java
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:4k
- /**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package org.apache.hadoop.mapred;
- import junit.framework.TestCase;
- import org.apache.hadoop.fs.Path;
- import org.apache.hadoop.mapred.FileInputFormat;
- import org.apache.hadoop.mapred.JobConf;
- import org.apache.hadoop.util.StringUtils;
- public class TestInputPath extends TestCase {
- public void testInputPath() throws Exception {
- JobConf jobConf = new JobConf();
- Path workingDir = jobConf.getWorkingDirectory();
-
- Path path = new Path(workingDir,
- "xx{y"+StringUtils.COMMA_STR+"z}");
- FileInputFormat.setInputPaths(jobConf, path);
- Path[] paths = FileInputFormat.getInputPaths(jobConf);
- assertEquals(1, paths.length);
- assertEquals(path.toString(), paths[0].toString());
-
- StringBuilder pathStr = new StringBuilder();
- pathStr.append(StringUtils.ESCAPE_CHAR);
- pathStr.append(StringUtils.ESCAPE_CHAR);
- pathStr.append(StringUtils.COMMA);
- pathStr.append(StringUtils.COMMA);
- pathStr.append('a');
- path = new Path(workingDir, pathStr.toString());
- FileInputFormat.setInputPaths(jobConf, path);
- paths = FileInputFormat.getInputPaths(jobConf);
- assertEquals(1, paths.length);
- assertEquals(path.toString(), paths[0].toString());
-
- pathStr.setLength(0);
- pathStr.append(StringUtils.ESCAPE_CHAR);
- pathStr.append("xx");
- pathStr.append(StringUtils.ESCAPE_CHAR);
- path = new Path(workingDir, pathStr.toString());
- Path path1 = new Path(workingDir,
- "yy"+StringUtils.COMMA_STR+"zz");
- FileInputFormat.setInputPaths(jobConf, path);
- FileInputFormat.addInputPath(jobConf, path1);
- paths = FileInputFormat.getInputPaths(jobConf);
- assertEquals(2, paths.length);
- assertEquals(path.toString(), paths[0].toString());
- assertEquals(path1.toString(), paths[1].toString());
- FileInputFormat.setInputPaths(jobConf, path, path1);
- paths = FileInputFormat.getInputPaths(jobConf);
- assertEquals(2, paths.length);
- assertEquals(path.toString(), paths[0].toString());
- assertEquals(path1.toString(), paths[1].toString());
- Path[] input = new Path[] {path, path1};
- FileInputFormat.setInputPaths(jobConf, input);
- paths = FileInputFormat.getInputPaths(jobConf);
- assertEquals(2, paths.length);
- assertEquals(path.toString(), paths[0].toString());
- assertEquals(path1.toString(), paths[1].toString());
-
- pathStr.setLength(0);
- String str1 = "{a{b,c},de}";
- String str2 = "xyz";
- String str3 = "x{y,z}";
- pathStr.append(str1);
- pathStr.append(StringUtils.COMMA);
- pathStr.append(str2);
- pathStr.append(StringUtils.COMMA);
- pathStr.append(str3);
- FileInputFormat.setInputPaths(jobConf, pathStr.toString());
- paths = FileInputFormat.getInputPaths(jobConf);
- assertEquals(3, paths.length);
- assertEquals(new Path(workingDir, str1).toString(), paths[0].toString());
- assertEquals(new Path(workingDir, str2).toString(), paths[1].toString());
- assertEquals(new Path(workingDir, str3).toString(), paths[2].toString());
- pathStr.setLength(0);
- String str4 = "abc";
- String str5 = "pq{r,s}";
- pathStr.append(str4);
- pathStr.append(StringUtils.COMMA);
- pathStr.append(str5);
- FileInputFormat.addInputPaths(jobConf, pathStr.toString());
- paths = FileInputFormat.getInputPaths(jobConf);
- assertEquals(5, paths.length);
- assertEquals(new Path(workingDir, str1).toString(), paths[0].toString());
- assertEquals(new Path(workingDir, str2).toString(), paths[1].toString());
- assertEquals(new Path(workingDir, str3).toString(), paths[2].toString());
- assertEquals(new Path(workingDir, str4).toString(), paths[3].toString());
- assertEquals(new Path(workingDir, str5).toString(), paths[4].toString());
- }
- }