Как исправить пустой вывод для кода textfilestream - PullRequest
0 голосов
/ 19 января 2019
 object abc {

  def main(args: Array[String]) = {
    m()
  }

  def m() {
    val spark = SparkSession.builder.appName("ola").master("local[*]").getOrCreate
    val sc = spark.sparkContext
    val ssc = new StreamingContext(sc, Seconds(5))
    var cnt = sc.longAccumulator("cnt")
    cnt.value

    import spark.implicits._
    val x = ssc.textFileStream("file:///home/xyz/folderone/")

    x.foreachRDD{ rddx =>
      val x2 = rddx.map { xxx =>
        cnt.add(1)
        xxx
      }
      x2.toDF.write.format("text").mode("overwrite").save("file:///home/xyz/oparekta")
    }
    println(s"value of count ${cnt.value}")
    ssc.start()
    ssc.awaitTermination()

  }

приведенный выше код предназначен для обработки файлов с заданным путем к папке, каким-то образом возникает проблема в коде, получая пустой выходной файл, в чем может быть причина?

1 Ответ

0 голосов
/ 19 января 2019

Попробуйте что-то подобное, чтобы избежать обработки нулевых данных:

...
QS.foreachRDD(q => {
    if(!q.isEmpty) {   
...

Кроме того, необходимо учитывать перезапись дополнения. Не уверен в вашем случае использования, это может быть упущение.

...