Могу ли я создать файл последовательности, используя фреймы данных spark?
У меня есть требование, в котором мне нужно создать файл последовательности. Прямо сейчас мы написали пользовательский API поверх api hadoop, но так как мы движемся в spark, мы должны достичь того же, используя spark.Can это может быть достигнуто с помощью кадров данных spark?
1 ответ
Решение
AFAIK нет нативного API, доступного непосредственно в DataFrame, кроме подхода, описанного ниже
Пожалуйста, попробуйте или подумайте, что-то вроде (это RDD в стиле DataFrame, вдохновленный SequenceFileRDDFunctions.scala
& метод saveAsSequenceFile
) в приведенном ниже примере:
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()
}
Дополнительная информация пожалуйста см.