gpt4 book ai didi

java - Spark 上下文 WholeTextFiles 和 JavaStreamingContext textFileStream 在 Apache Spark 集群中不起作用

转载 作者:行者123 更新时间:2023-11-30 10:28:55 29 4
gpt4 key购买 nike

我是 Apache Spark 和 Apache Spark 流编程的初学者, 我使用 Hadoop 连接器将 Azure 数据湖配置为 Apache Spark link它连接正确并且 我可以使用

通过终端本身访问 Adl 数据

hadoop fs -ls adl://xxxxx.azuredatalakestore.net

其显示的文件名列表包含目录,但我需要从程序本身获取相同的列表,我尝试过这样做

SparkConf conf = new SparkConf().setAppName("ADL Application");     
JavaSparkContext jsc = new JavaSparkContext(conf);
@SuppressWarnings("resource")
JavaStreamingContext jcntxt=new JavaStreamingContext(jsc,Durations.seconds(1));
JavaDStream<String> javaDStream = jcntxt.textFileStream("adl://xxxxx.azuredatalakestore.net/directory");
JavaEsSparkStreaming.saveJsonToEs(javaDStream, "modwebservice/docs");
jcntxt.start();
jcntxt.awaitTermination();

但它没有显示我在“wholeTextFiles”中尝试过的任何列表而不是“textFileStream”,但它不起作用,如果我使用文件名,它可以正常工作,而不是目录,我也可以获取数据。

JavaSparkContext jsc = new JavaSparkContext(conf);      
@SuppressWarnings("resource")
JavaStreamingContext jcntxt=new JavaStreamingContext(jsc,Durations.seconds(1));
JavaRDD<String> javaRDD6 = jsc.textFile(args[0],1);
Queue<JavaRDD<String>> microbatches = new LinkedList<JavaRDD<String>>();
microbatches.add(javaRDD6);
JavaDStream<String> javaDStream = jcntxt.queueStream(microbatches);
JavaEsSparkStreaming.saveJsonToEs(javaDStream, args[1]);
jcntxt.start();
jcntxt.awaitTermination();

据我所知,Apache Spark 仅适用于本地存储和 hdfs 文件存储位置仅可能是,我不知道如何获取azure data Lake目录包含文件列表我尝试了两种方法,但它不起作用如果有人知道请分享链接,谢谢..

最佳答案

尝试使用 Java 中的以下代码通过类 JavaSparkContextwholeTextFiles 方法列出具有 Data Lake Store 的 HDFS 上的所有文件(同样使用 SparkContext 相同的方法)。

JavaSparkContext jsc = new JavaSparkContext();
String path = "adl://xxxxx.azuredatalakestore.net";
JavaPairRDD<String, String> jprdd = jsc.wholeTextFiles(String path);
for(Tuple2<String, String> tuple: jprdd.collect()) { // Tuple2: <FileName, Content>
System.out.println(tuple._1());
}

希望有帮助。

关于java - Spark 上下文 WholeTextFiles 和 JavaStreamingContext textFileStream 在 Apache Spark 集群中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44344611/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com