2

シーケンス ファイルを作成する必要があるという要件があります。現在、hadoop api の上にカスタム api を作成していますが、spark に移行しているため、spark を使用して同じことを達成する必要があります。これは、spark データフレームを使用して達成できますか? ?

4

1 に答える 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 に答える