今天使用下面的命令读取文件的时候
val train_male = sc.textFile("file:\\E:\\m\\part-00000")
读取数据的时候,报了下面的错误
org.apache.hadoop.fs.ChecksumException: Checksum error
后来查资料发现,这个和Checksum校验有问题,查看目录,发现保存的数据里面果然有.part-00000.crc文件
于是删除所有的crc文件,再运行,OK。
原来,Hadoop为了保证数据的一致性,会对文件生成相应的校验文件,并在读写的时候进行校验,确保数据的准确性。
我昨天在保存文件的时候是使用了
saveAsTextFile("file:\\E:\\m")
所以自带有crc校验文件。
校验失败的原因是我今天对这个数据做了修改。
所以,如果对文件进行了修改,一定要及时的删除crc文件。