gpt4 book ai didi

java - 如何为 Spark 中的 SaveAsSequenceFile 方法提供编解码器?

转载 作者:可可西里 更新时间:2023-11-01 14:38:24 25 4
gpt4 key购买 nike

我正在尝试弄清楚如何将编解码器传递给 Apache Spark 中的 saveAsSequenceFile 方法。下面是我试图运行的代码。我正在运行 Scala 2.10.4、Spark 1.0.0、Java 1.7.60 和 Apache Hadoop 2.4.0。

val rdd:RDD[(String, String)] = sc.sequenceFile(secPath,
classOf[Text],
classOf[Text]
).map { case (k,v) => (k.toString, v.toString)}

val sortedOutput = rdd.sortByKey(true, 1)

sortedOutput.saveAsSequenceFile(secPathOut)

我的问题是我是 Spark 和 Scala 的新手。我不明白 javadoc 对传递给 saveAsSequenceFile 方法的编解码器变量意味着什么。

def saveAsSequenceFile(path: String, codec: Option[Class[_ <: CompressionCodec]] = None): Unit 

<: 是什么意思?我知道编解码器是可选的,因为当我运行上面的代码时它可以工作。有人可以展示一个格式正确的编解码器调用此方法的示例吗?

谢谢!

最佳答案

<:表示你传入的类应该扩展 org.apache.hadoop.io.compress.CompressionCodec (阅读 this ),spark 使用了很多 HDFS 功能,并且在这一点上与其高度集成。这意味着您可以将以下任何类作为编解码器传递,BZip2Codec, DefaultCodec, GzipCodecCompressionCodec 可能还有其他扩展名没有内置到 hadoop 中。下面是调用方法的例子

sc.parallelize(List((1,2))).saveAsSequenceFile("path",Some(classOf[GzipCodec]))

Option[...]在 scala 中使用有利于 java 的 null尽管null存在于scala中。 Option可以是Some(...)None

关于java - 如何为 Spark 中的 SaveAsSequenceFile 方法提供编解码器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24554625/

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