gpt4 book ai didi

java - Hadoop Spark : How to make distinct of elements in JavaRDD?

转载 作者:行者123 更新时间:2023-11-29 05:16:51 25 4
gpt4 key购买 nike

我想将一些 JavaRDD 集合的不同存储到 Spark 中的文件中?

通过使用 RDD 的 distinct() 方法,我无法实现相同的目的。

我的猜测是 RDD 将每个元素视为一个单独的实例。在这种情况下,我们如何实现不同。

以下是代码片段,谁能帮帮忙?

public static void main(String[] args) {
SparkConf conf = new SparkConf().setAppName("Xml Spark Demo");
JavaSparkContext sc = new JavaSparkContext(conf);

JavaSQLContext sqlContext = new org.apache.spark.sql.api.java.JavaSQLContext(
sc);


// Load a text file and convert each line to a JavaBean.
JavaRDD<String> dataFromFile = sc.textFile(
"/home/kedarnath/Rentals/inputData/temp-01.xml").map(
new ParseAgentFromXml());

//Need distinct values here
dataFromFile.distinct().saveAsTextFile("/home/kedarnath/Rentals/testOutputDistinct.txt");

}

提前致谢

~凯达

最佳答案

从性能的角度来看,我不确定这是否是最有效的方法,但我会尝试将过程分为两个不同的步骤:dinstinct 和映射到配对。考虑以下示例:

Original dataset:          Desired output (distinct elements)

Apple 1, Apple
Tree 2, Tree
Car 3, Car
Priest 4, Priest
Apple 5, Phone
Tree
Apple
Phone
  • 不同:

通过使用 distinct() 转换,您将获得一个包含所有不同元素的新 RDD 数据集。在这种情况下,它会返回如下内容:

Apple
Tree
Car
Priest
Phone
  • 映射到对:

下一步是为 RDD 数据集中的每个值关联一个键,将其转换为键值格式。为此,可以使用转换 mapToPair()。输出将导致所需的输出。

1, Apple
2, Tree
3, Car
4, Priest
5, Phone

访问this页面以获取有关不同可用方法的更多信息。

关于java - Hadoop Spark : How to make distinct of elements in JavaRDD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26251423/

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