我需要检查Java RDD是否包含有效的UTF-8。因此,有一个函数Text.validateUTF8(),它将byte []数组作为输入。对于我的情况,我需要将JavaRDD作为输入而不是byte [],或者以某种方式我可以将JavaRDD解析为byte []并进行UTF-8验证。 请注意,我不想再次重新阅读该文件。
以下是文件的阅读方式。
final String sourceFileName = "hdfs://localhost:9000/tmp/utfTest.csv";
Configuration hadoopConf = new Configuration();
// delimiter for the source file to be checked
hadoopConf.set("textinputformat.record.delimiter", "\n");
// read the data from file to be checked
JavaPairRDD<LongWritable, Text> rdd = jsc.newAPIHadoopFile(sourceFileName,
TextInputFormat.class, LongWritable.class, Text.class, hadoopConf);
JavaRDD<Text> textJavaRDD = rdd.values();
请在这种情况下帮助我。
由于