我是Spark和Spark数据集中的新手。我试图使用声明一个空的数据集,emptyDataset但它要求org.apache.spark.sql.Encoder。我用于数据集的数据类型是的对象case class Tp(s1: String, s2: String, s3: String)。
我有一个ListBuffer[List[String]].我想在列表中找到共同的元素.
样本输入:
ListBuffer[List["a", "b", "c", "d"], List["a", "c", "e", "f"], List["a", "c", "g"]]
Run Code Online (Sandbox Code Playgroud)
输出:
List["a", "c"]
Run Code Online (Sandbox Code Playgroud)
我正在做以下事情,但效率不高,需要时间来处理更大的列表.
val _length = _listBuffer.length
val _flattenList = _listBuffer.flatten
val _commonValues = _flattenList.groupBy(identity).mapValues(_.size)
.filter({ case (x, y) => y == _length })
.keys
Run Code Online (Sandbox Code Playgroud)