我需要根据键输出分区。我正在尝试使用MultipleTextOutputFormat
。
我发现了这个https://stackoverflow.com/a/26051042/6561443
但是当我尝试在spark-shell中执行相同操作时,出现错误。
scala> import org.apache.hadoop.io.NullWritable
import org.apache.hadoop.io.NullWritable
scala> import org.apache.spark._
import org.apache.spark._
scala> import org.apache.spark.SparkContext._
import org.apache.spark.SparkContext._
scala> import org.apache.hadoop.mapred.lib.MultipleTextOutputFormat
import org.apache.hadoop.mapred.lib.MultipleTextOutputFormat
scala> class RDDMultipleTextOutputFormat extends MultipleTextOutputFormat[Any, Any] {
override def generateActualKey(key: Any, value: Any): Any =
NullWritable.get()
override def generateFileNameForKeyValue(key: Any, value: Any, name: String): String =
key.asInstanceOf[String]
}
<console>:11: error: not found: type MultipleTextOutputFormat
class RDDMultipleTextOutputFormat extends MultipleTextOutputFormat[Any, Any] {
^
<console>:13: error: not found: value NullWritable
NullWritable.get()
如果我通过spark-submit提交此申请,
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
我在这里想念什么吗?它不能在 Spark 壳中工作吗?
最佳答案
我遇到了同样的问题。
尝试写
class RDDMultipleTextOutputFormat extends org.apache.hadoop.mapred.lib.MultipleTextOutputFormat[Any, Any] {
代替。
为我工作。不知道为什么。
关于scala - 找不到:在spark scala中键入MultipleTextOutputFormat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49049839/