将数据保存到序列文件

时间:2018-09-07 13:58:38

标签: scala apache-spark hbase hadoop2

我正在尝试对序列文件进行某种过滤,然后将其保存回另一个序列文件,例如:

val subset = ???
val hc = sc.hadoopConfiguration

val serializers = List(
  classOf[WritableSerialization].getName,
  classOf[ResultSerialization].getName
).mkString(",")

hc.set("io.serializations", serializers)

subset.saveAsNewAPIHadoopFile(
  "output/sequence",
  classOf[ImmutableBytesWritable],
  classOf[Result],
  classOf[SequenceFileOutputFormat[ImmutableBytesWritable, Result]],
  hc
)

编译后,出现以下错误:

Class[org.apache.hadoop.mapred.SequenceFileOutputFormat[org.apache.hadoop.hbase.io.ImmutableBytesWritable,org.apache.hadoop.hbase.client.Result]](classOf[org.apache.hadoop.mapred.SequenceFileOutputFormat]) 

required: Class[_ <: org.apache.hadoop.mapreduce.OutputFormat[_, _]] classOf[SequenceFileOutputFormat[ImmutableBytesWritable, Result]],

据我所知,SequenceFileOuputFormat扩展了FileOutputFormat,后者扩展了OutputFormat,但是我缺少一些东西。

可以帮忙吗?

我在https://issues.apache.org/jira/browse/SPARK-25405向Spark团队提出了问题

0 个答案:

没有答案