Могу ли я создать файл последовательности, используя фреймы данных spark?

У меня есть требование, в котором мне нужно создать файл последовательности. Прямо сейчас мы написали пользовательский API поверх api hadoop, но так как мы движемся в spark, мы должны достичь того же, используя spark.Can это может быть достигнуто с помощью кадров данных spark?

1 ответ

Решение

AFAIK нет нативного API, доступного непосредственно в DataFrame, кроме подхода, описанного ниже


Пожалуйста, попробуйте или подумайте, что-то вроде (это RDD в стиле DataFrame, вдохновленный SequenceFileRDDFunctions.scala & метод saveAsSequenceFile) в приведенном ниже примере:

Дополнительные функции, доступные в СДР пар (ключ, значение) для создания 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()
}

Дополнительная информация пожалуйста см.

Другие вопросы по тегам