Spark Streaming: запись данных в HDFS путем чтения из одного HDFSdir в другой - PullRequest
0 голосов
/ 21 декабря 2018

Я пытаюсь использовать потоковую передачу по искру при чтении данных из одного расположения HDFS в другое

Ниже приведен фрагмент моего кода на оболочке spark

Но я не смог увидеть файлы, созданные наКаталог вывода HDFS Может ли какой-то момент указать, как загружать файлы в HDFS

  scala> sc.stop()

  scala> import org.apache.spark.SparkConf

  scala> import org.apache.spark.streaming

  scala> import org.apache.spark.streaming.{StreamingContext,Seconds}

  scala> val conf = new SparkConf().setMaster("local[2]").setAppName("files_word_count")

  scala> val ssc = new StreamingContext(conf,Seconds(10))

  scala> val DF = ssc.textFileStream("/user/cloudera/streamingcontext_dir")
  scala> val words_freq = DF.flatMap(x=>(x.split(" "))).map(y=>(y,1)).reduceByKey(_+_)

  scala>    words_freq.saveAsTextFiles("hdfs://localhost:8020/user/cloudera/streamingcontext_dir2")

  scala> ssc.start()

Я поместил файлы в HDFS "/ user / cloudera / streamingcontext_dir" и создал другой каталог "/ user / cloudera / streamingcontext_dir2" длявидя записанные файлы

Но я не смог увидеть файлы в выходном каталоге Может кто-то указать, что здесь не так?

Спасибо Sumit

1 Ответ

0 голосов
/ 21 декабря 2018

Попробуйте использовать RDD здесь, а не весь DStream, возможно:

words_freq.foreachRDD(rdd => 
rdd.saveAsTextFile("hdfs://localhost:8020/user/cloudera/streamingcontext_dir2")
...