我有一个要求,我需要创建一个序列文件。现在我们已经在 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(使用前将#替换为@)