java 怎么读取hdfs上csv文件的某一列
java 怎么读取hdfs上csv文件的某一列我想对某一列数进行处理,例如求均值。急诊!
这是读取数组,下面是在第12列数据统一加前缀"V",下面例子,希望对楼主有帮助
java读取csv文件,按照指定格式:
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import com.csvreader.CsvReader;
import com.csvreader.CsvWriter;
/**
* 读取CSV文件
* 所谓"CSV",是Comma Separated Value(逗号分隔值)的英文缩写,通常都是纯文本文件。
* 可以看成数据库程序与电子表格之间一种中间通信文件,数据库可以导出。csv格式,excel也可以导入并打开。csv文件,例子如下
* sj_mino1001.jpg,715282,4FB55FE8,
* sj_mino1002.jpg,471289,93203C5C,
* sj_mino1003.jpg,451929,C4E80467,
*
*/
public class CSVDeal{
public static void main(String[] args) {
try {
String[] stringList;
String csvFilePath = "C:\\Users\\Administrator\\Desktop\\20140227135936.csv";
String sourceFileString= "C:\\Users\\Administrator\\Desktop\\test.csv";
CsvReader reader = new CsvReader(csvFilePath); //默认是逗号分隔符,UTF-8编码
CsvWriter writer = new CsvWriter(sourceFileString);
/*
* readRecord()判断是否还有记录,getValues()读取当前记录,然后指针下移
*/
reader.readRecord();
writer.writeRecord(reader.getValues()); //读取表头
/*
* 逐行读取,以免文件太大
* 处理表头后面的数据,这里是在第12列数据统一加前缀"V"
*/
while(reader.readRecord()){
stringList = reader.getValues();
stringList = 'V' + stringList;
writer.writeRecord(stringList);
}
reader.close();
writer.close();
}catch(Exception ex){
System.out.println(ex);
}
}
}
只能把文件取道本地,然后再读取把,或者使用mr将需要处理的那一列单独输出到一个文件
还有更好的解决方法? wscl1213 发表于 2016-3-14 15:30
这是读取数组,下面是在第12列数据统一加前缀"V",下面例子,希望对楼主有帮助
java读取csv文件,按照指 ...
我要对HDFS上的csv文件的某一列求均值处理。这样的路径是本地的路径还是HDFS上的路径呢?还是直接用MapReduce对HDFS上的csv某列求均值呢?好像不需要java吧。这里不是很懂
szcountryboy 发表于 2016-3-14 16:34
只能把文件取道本地,然后再读取把,或者使用mr将需要处理的那一列单独输出到一个文件
还有更好的解决方法?
应该是直接用MapReduce对csv数据处理。求某一列的均值,方差
xintuhai 发表于 2016-3-14 21:33
应该是直接用MapReduce对csv数据处理。求某一列的均值,方差
楼主首先要懂mapreduce编程。
然后换成hdfs路径,其它都是一样的
s060403072 发表于 2016-3-14 22:11
楼主首先要懂mapreduce编程。
然后换成hdfs路径,其它都是一样的
map上面没有自带的读取CSV的类吧(我没有找到)。我按照网上例子,自己继承InputFormat类,写了一个CSVInputFormat,但是读取的时候提示Input path does not exist: file:/out/acc_00001.csv,这是怎么回事呢?
xintuhai 发表于 2016-3-15 20:00
map上面没有自带的读取CSV的类吧(我没有找到)。我按照网上例子,自己继承InputFormat类,写了一个CSVIn ...
你这是本地路径,应该是hdfs路径
s060403072 发表于 2016-3-15 20:03
你这是本地路径,应该是hdfs路径
这个是HDFS文件吧,路径是好像这样表示的
xintuhai 发表于 2016-3-15 20:12
这个是HDFS文件吧,路径是好像这样表示的
权限有问题,楼主给下面对比下,授下权
页:
[1]
2