hadoop文件IO

InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。
InputStreamReader(InputStream in)
InputStreamReader(InputStream in, String charsetName)
 
OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。
OutputStreamWriter(OutputStream out)
OutputStreamWriter(OutputStream out, String charsetName)


//普通文件的字符转码IO,标准IO
//读
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream),"charsetName");
//写
BufferedWriter bw = new BufferedWriter(new OutputStreamwWriter(new FileOutputStream),"charsetName");


//hadoop下IO加转码
//读
FSDataInputStream fsDataInputStream = FileSystem.get(conf).open(path);
BufferedReader br = new BufferedReader(new InputStreamReader(fsDataInputStream,"charsetName"));
//写
FSDataOutputStream fsDataOutputStream = FileSystem.get(conf).create(path);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fsDataOutputStream, "charsetName"));


//使用hadoop自带LineReader工具
LineReader lineReader = new LineReader(FileSystem.get(conf).open(new Path(file)));
Text text = new Text();//注意此处应该实例化Text,见下图
while (lineReader.readLine(text) > 0){
//自己实现

}



参考文献:http://blog.csdn.net/waldmer/article/details/13503867

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 程序包org.apache.hadoop.io不存在是因为该程序没有成功导入hadoop相关的依赖包。要解决这个问题,可以按照以下步骤进行操作: 1. 首先,确认是否已经正确安装了hadoop。可以通过在终端输入hadoop命令来检查是否已安装。 2. 检查项目的构建配置文件(如pom.xml或build.gradle)中是否正确添加了hadoop的依赖。可以在该文件中添加以下依赖: ``` <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>${hadoop.version}</version> </dependency> ``` 其中`${hadoop.version}`是hadoop的版本号,根据实际情况进行替换。 3. 重新构建或重新加载项目。可以使用构建工具(如Maven或Gradle)重新构建项目,或者重新加载项目以确保依赖包被正确加载。 4. 检查IDE的设置。有时,IDE可能需要手动配置以引用hadoop的依赖包。可以通过编辑IDE的构建路径或模块设置来确保依赖正确加载。 5. 检查hadoop的安装路径和环境变量设置。确保hadoop的安装路径正确,并且在系统的环境变量中正确配置了hadoop的相关路径。 如果以上步骤都执行正确,那么应该能够解决“程序包org.apache.hadoop.io不存在”的问题。如有其他问题,请提供更多细节以便进一步帮助解决。 ### 回答2: 程序包org.apache.hadoop.io不存在可能是因为没有正确配置hadoop的依赖库。在使用hadoop相关的代码或项目时,需要将hadoop的相关jar包添加到项目的classpath中。 解决该问题的步骤如下: 1. 首先,确认你已经正确安装了hadoop,并且hadoop的环境变量已经配置好。 2. 确保你的项目中已经包含了hadoop相关的jar包,比如hadoop-core.jar。 3. 检查你的项目的构建配置文件,比如pom.xml(如果是使用maven构建项目),确认依赖项中是否包含了hadoop相关的依赖。 4. 确认你的项目的classpath是否正确设置了hadoop的jar包路径。 5. 如果上述步骤都没有问题,可以尝试重新导入hadoop的jar包,并重新编译运行项目。 总之,解决程序包org.apache.hadoop.io不存在的问题,需要确认hadoop的相关依赖已经正确配置,并且项目的classpath中包含了hadoop的jar包。 ### 回答3: 程序包org.apache.hadoop.io不存在是因为你的项目缺少Apache Hadoop库的依赖。 Apache Hadoop是一个开源的分布式存储和处理大数据的框架,它提供了一些用于处理数据和文件的工具类和接口。org.apache.hadoop.io包含了一些基本的数据类型和输入输出类,用于在Hadoop中读取和写入数据。 要解决这个问题,你需要在你的项目中添加Hadoop库的依赖。具体的步骤取决于你使用的构建工具,比如Maven或Gradle。 如果你使用Maven,你可以在pom.xml文件中添加以下依赖: ```xml <dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>3.2.1</version> </dependency> </dependencies> ``` 上面的代码会引入hadoop-client库,版本为3.2.1。你可以根据你实际使用的Hadoop版本进行调整。 如果你使用Gradle,你可以在build.gradle文件中添加以下依赖: ```groovy dependencies { implementation 'org.apache.hadoop:hadoop-client:3.2.1' } ``` 添加完依赖后,重新构建你的项目,编译错误应该就会消失了。 总之,解决程序包org.apache.hadoop.io不存在的方法就是添加Apache Hadoop库的依赖,并确保依赖的版本与你使用的Hadoop版本兼容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值