java如何为Spark中的SaveAsSequenceFile方法提供编解码器?
我正在试图弄清楚如何在ApacheSpark中将编解码器传递给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方法的codec变量意味着什么
def saveAsSequenceFile(path: String, codec: Option[Class[_ <: CompressionCodec]] = None): Unit
什么是<;:意思是我知道编解码器是可选的,因为当我运行上面的代码时,它可以工作。有人能举一个对这个方法进行正确格式化的编解码器调用的例子吗
谢谢
# 1 楼答案
<:
表示您传入的类应该扩展^{BZip2Codec, DefaultCodec, GzipCodec
,可能还有CompressionCodec
的其他扩展没有内置到hadoop中。下面是一个调用该方法的示例scala中使用了
Option[...]
来支持java的null
,尽管scala中存在null
Option
可以是Some(...)
或None