将JavaPairDStream写入单个HDFS位置
我正在探索使用Java的Spark流媒体 我下载了Cloudera quick start VM(CDH 5.5),并为Spark streaming编写了Java代码 我已经编写了一个返回JavaPairDStream的程序。当我尝试将输出写入HDFS时,它可以工作,但它正在创建多个文件夹(基于时间戳)。文档中说这就是它的工作原理,但是有没有办法将输出写入HDFS中的同一文件夹/文件?我尝试使用重新分区(1),但没有成功 请参阅下面的代码:将JavaPairDStream写入单个HDFS位置,java,hadoop,apache-spark,spark-streaming,Java,Hadoop,Apache Spark,Spark Streaming,我正在探索使用Java的Spark流媒体 我下载了Cloudera quick start VM(CDH 5.5),并为Spark streaming编写了Java代码 我已经编写了一个返回JavaPairDStream的程序。当我尝试将输出写入HDFS时,它可以工作,但它正在创建多个文件夹(基于时间戳)。文档中说这就是它的工作原理,但是有没有办法将输出写入HDFS中的同一文件夹/文件?我尝试使用重新分区(1),但没有成功 请参阅下面的代码: if (args.length <
if (args.length < 3) {
System.err.println("Invalid arguments");
System.exit(1);
}
SparkConf sparkConf = new SparkConf().setMaster("local").setAppName("Product Reco Spark Streaming");
JavaStreamingContext javaStreamContext = new JavaStreamingContext(sparkConf, new Duration(10000));
String inputFile = args[0];
String outputPath = args[1];
String outputFile = args[2];
JavaDStream<String> dStream = javaStreamContext.textFileStream(inputFile);
JavaPairDStream<String, String> finalDStream = fetchProductRecommendation(dStream); // Does some logic to get the final DStream
finalDStream.print();
finalDStream.repartition(1).saveAsNewAPIHadoopFiles(outputPath, outputFile, String.class, String.class, TextOutputFormat.class);
javaStreamContext.start();
javaStreamContext.awaitTermination();
如果您需要更多信息,请告诉我,因为这是我第一次编写spark流代码
spark-submit --master local /home/cloudera/Spark/JarLib_ProductRecoSparkStream.jar /user/ProductRecomendations/SparkInput/ /user/ProductRecomendations/SparkOutput/ productRecoOutput