【问题标题】:Spark Streaming : Write Data to HDFS by reading from one HDFSdir to anotherSpark Streaming:通过从一个 HDFSdir 读取到另一个 HDFS 将数据写入 HDFS
【发布时间】:2018-12-21 14:18:31
【问题描述】:

我正在尝试使用火花流将数据从一个 HDFS 位置读取到另一个位置

下面是我在 spark-shell 上的代码 sn-p

但我看不到在 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" 以查看写入的文件

但我在输出目录中看不到文件 有人能指出这里有什么问题吗?

谢谢 苏米特

【问题讨论】:

    标签: scala apache-spark hadoop hdfs


    【解决方案1】:

    尝试在这里使用 RDD 而不是整个 DStream:

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

    【讨论】:

    • 很高兴它帮助@SumitPawar 请求您在这种情况下将答案标记为已接受(绿色复选标记),因为它可以帮助面临相同问题的其他用户。
    猜你喜欢
    • 1970-01-01
    • 2015-10-30
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多