在Java中从Spark数据集中获取唯一单词
我正在使用ApacheSpark2标记一些文本在Java中从Spark数据集中获取唯一单词,java,apache-spark,apache-spark-sql,spark-dataframe,Java,Apache Spark,Apache Spark Sql,Spark Dataframe,我正在使用ApacheSpark2标记一些文本 Dataset<Row> regexTokenized = regexTokenizer.transform(data); 现在,我想得到所有独特的词语。我尝试了几个过滤器、flatMap、map函数和reduce。我不明白这一点,因为我是Spark的新手。我来自scala,但我相信Java中也有类似的方式 我认为在这种情况下,您必须使用explode方法,以便将数据转换为单词的数据集 此代码应提供所需的结果: import org.
Dataset<Row> regexTokenized = regexTokenizer.transform(data);
现在,我想得到所有独特的词语。我尝试了几个过滤器、flatMap、map函数和reduce。我不明白这一点,因为我是Spark的新手。我来自scala,但我相信Java中也有类似的方式 我认为在这种情况下,您必须使用
explode
方法,以便将数据转换为单词的数据集
此代码应提供所需的结果:
import org.apache.spark.sql.functions.explode
val dsWords = regexTokenized.select(explode("words"))
val dsUniqueWords = dsWords.distinct()
有关分解方法的信息,请参阅
希望有帮助。我来自scala,但我相信Java中也有类似的方法
我认为在这种情况下,您必须使用explode
方法,以便将数据转换为单词的数据集
此代码应提供所需的结果:
import org.apache.spark.sql.functions.explode
val dsWords = regexTokenized.select(explode("words"))
val dsUniqueWords = dsWords.distinct()
有关分解方法的信息,请参阅
希望能有所帮助。基于@Haroun Mohammedi的答案,我能够用Java来解决这个问题
Dataset<Row> uniqueWords = regexTokenized.select(explode(regexTokenized.col("words"))).distinct();
uniqueWords.show();
Dataset uniqueWords=regexTokenized.select(explode(regexTokenized.col(“words”)).distinct();
uniqueWords.show();
基于@Haroun Mohammedi的回答,我能够用Java解决这个问题
Dataset<Row> uniqueWords = regexTokenized.select(explode(regexTokenized.col("words"))).distinct();
uniqueWords.show();
Dataset uniqueWords=regexTokenized.select(explode(regexTokenized.col(“words”)).distinct();
uniqueWords.show();