我正在用spark读取一个压缩文件
val data = sc.textFile(inputFile)
这给了我一个 RDD[string]
. 如何将此转换为 RDD[(Array[Byte], Array[Byte])]
在斯卡拉?
有关此要求的更多详细信息:
我正在spark上使用terasort。默认情况下,terasort不写入压缩输出hdf。为了解决这个问题,在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])]
格式。
谢谢
1条答案
按热度按时间qhhrdooz1#
您可以通过将compression codec参数传递到saveastextfile来写入压缩的数据,如下所示:
您可以使用sc.textfile(“/tmp/test/”)读回压缩数据
现在,要回答您真正的问题,正如zohar所说,您可以使用.map将字符串转换为数组[byte],但是您还没有给出足够的信息。