gpt4 book ai didi

scala - Spark:如何将rdd.RDD [String]转换为rdd.RDD [(Array [Byte],Array [Byte])]

转载 作者:行者123 更新时间:2023-12-02 21:11:17 26 4
gpt4 key购买 nike

我正在使用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])]格式输入。

谢谢

最佳答案

您可以通过将压缩编码解码器参数传递给saveAsTextFile来写入压缩数据,如下所示:

import org.apache.hadoop.io.compress.GzipCodec
sorted.saveAsTextFile("/tmp/test/", classOf[GzipCodec])

您可以使用sc.textFile(“/ tmp / test /”)读回此压缩数据

enter image description here

现在,正如Zohar所说,要回答您的真实问题,您可以使用.map将您的String转换为Array [Byte],但是您没有提供足够的信息。

关于scala - Spark:如何将rdd.RDD [String]转换为rdd.RDD [(Array [Byte],Array [Byte])],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40255434/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com