我正在使用spark读取压缩文件
val data = sc.textFile(inputFile)这为我提供了RDD[string]形式的数据。如何在scala中将其转换为RDD[(Array[Byte], Array[Byte])]?
有关此要求的更多详细信息:
我在spark上使用terasort。默认情况下,terasort不写入压缩输出HDFS。要解决此问题,请将以下代码添加到TeraSort.scala文件
sorted.saveAsHadoopFile(outputFile,classOf[Text],classOf[IntWritable],
classOf[TextOutputFormat[Text,IntWritable]],
classOf[org.apache.hadoop.io.compress.SnappyCodec])这给了我压缩的输出文件
现在我需要读取这个文件来运行TeraValidate。Teravalidate需要RDD[(Array[Byte], Array[Byte])]格式的输入。
谢谢
发布于 2016-10-26 17:23:55
您可以通过将压缩编解码器参数传递给saveAsTextFile来写入压缩的数据,如下所示:
import org.apache.hadoop.io.compress.GzipCodec
sorted.saveAsTextFile("/tmp/test/", classOf[GzipCodec])您可以使用sc.textFile("/tmp/test/")读回压缩后的数据。

现在,为了回答您的实际问题,正如Zohar所说,您可以使用.map将字符串转换为ArrayByte,但是您在这方面提供的信息还不够多。
https://stackoverflow.com/questions/40255434
复制相似问题