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

2024-01-11

我有一个要求,我需要创建一个序列文件。现在我们已经在 hadoop api 之上编写了自定义 api,但是由于我们正在使用 Spark,我们必须使用 Spark 来实现相同的目的。这可以使用 Spark 数据帧来实现吗?


AFAIK 中没有直接可用的本机 api数据框 https://spark.apache.org/docs/1.5.1/api/java/org/apache/spark/sql/DataFrame.html除了下面的方法


请尝试/思考类似的事情(这是 DataFrame 风格的 RDD,灵感来自SequenceFileRDDFunctions.scala& 方法saveAsSequenceFile)在下面的例子中:

(键,值)对 RDD 上提供额外的函数,通过隐式转换创建 Hadoop SequenceFile。 https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/rdd/SequenceFileRDDFunctions.scala

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()
}

更多信息请参阅..

  • 如何将从 hive 表获取的数据帧写入 hadoop 序列文件和 r https://stackoverflow.com/questions/39830518/how-to-write-dataframe-obtained-from-hive-table-into-hadoop-sequencefile-and-r

  • 序列文件 http://dmtolpeko.com/category/sequencefile/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以使用 Spark 数据帧创建序列文件吗? 的相关文章

随机推荐