Processar o Spark Streaming rdd e armazenar em um único arquivo HDFS

Estou usando o Kafka Spark Streaming para obter dados de streaming.

val lines = KafkaUtils.createDirectStream[Array[Byte], String, DefaultDecoder, StringDecoder](ssc, kafkaConf, Set(topic)).map(_._2)

Estou usando este DStream e processando RDDs

val output = lines.foreachRDD(rdd => 
        rdd.foreachPartition { partition => 
            partition.foreach { file => runConfigParser(file)}
})

runConfigParser é um método JAVA que analisa um arquivo e produz uma saída que eu tenho que salvar no HDFS. Portanto, vários nós processam o RDD e gravam a saída em um único arquivo HDFS. Como eu quero carregar este arquivo no HIVE.

devo emitir o resultado derunConfigParser E usesc.parallze(output).saveAsTextFile(path) de modo que todos os meus nós gravem saídas RDD em um único arquivo HDFS. Esse design é eficiente?

Carregarei esse único arquivo HDFS (que será atualizado constantemente como dados de streaming) no HIVE e consultarei usando o Impala.

questionAnswers(2)

yourAnswerToTheQuestion