我可以使用 spark 数据帧创建序列文件吗?

Can I create sequence file using spark dataframes?

我有一个要求,我需要创建一个序列 file.Right 现在我们已经在 hadoop api 之上编写了自定义 api,但是由于我们在 spark 中移动,我们必须使用 spark.Can 实现相同的效果 这可以使用 spark 数据帧实现吗?

据我所知,DataFrame 中没有直接可用的本机 api 除了下面的方法


请try/think在下面的例子中(这是DataFrame风格的RDD,灵感来自SequenceFileRDDFunctions.scala和方法saveAsSequenceFile):

Extra functions available on RDDs of (key, value) pairs to create a Hadoop SequenceFile, through an implicit conversion.

import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.rdd.SequenceFileRDDFunctions
import org.apache.hadoop.io.NullWritable

object driver extends App {

   val conf = new SparkConf()
        .setAppName("HDFS writable test")
   val sc = new SparkContext(conf)

   val empty = sc.emptyRDD[Any].repartition(10)

   val data = empty.mapPartitions(Generator.generate).map{ (NullWritable.get(), _) }

   val seq = new SequenceFileRDDFunctions(data)

   // seq.saveAsSequenceFile("/tmp/s1", None)

   seq.saveAsSequenceFile(s"hdfs://localdomain/tmp/s1/${new scala.util.Random().nextInt()}", None)
   sc.stop()
}

更多信息请参阅..