シーケンス ファイルを作成する必要があるという要件があります。現在、hadoop api の上にカスタム api を作成していますが、spark に移行しているため、spark を使用して同じことを達成する必要があります。これは、spark データフレームを使用して達成できますか? ?
3616 次
1 に答える
1
私の知る限り、以下のアプローチを除いて、 DataFrameで直接利用できるネイティブAPIはありません
SequenceFileRDDFunctions.scala以下の例で、( & methodに触発された DataFrame スタイルの RDD である) ようなことを試してみてくださいsaveAsSequenceFile:
(キー、値) ペアの RDD で使用できる追加関数は、暗黙的な変換を通じて Hadoop SequenceFile を作成します。
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()
}
詳細については、こちらをご覧ください..
于 2016-11-27T18:30:05.950 に答える