企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
```scala /** *返回新数据集,拥有新的别名。alias 同 as。 */ def alias(alias: Symbol): Dataset[T] def alias(alias: String): Dataset[T] def as(alias: Symbol): Dataset[T] def as(alias: String): Dataset[T] /** *调整分区数量。 */ def coalesce(numPartitions: Int): Dataset[T] /** *去重。 */ def distinct(): Dataset[T] /** *返回删除了重复行的新数据集,只考虑列的子集 */ def dropDuplicates(col1: String, cols: String*): Dataset[T] def dropDuplicates(colNames: Array[String]): Dataset[T] def dropDuplicates(colNames: Seq[String]): Dataset[T] def dropDuplicates(): Dataset[T] // 同 distinct /** *返回一个新数据集,其中包含此数据集中的行,但不包含另一个数据集中的 *行。这与 SQL 中的 EXCEPT DISTINCT 是等价的。 */ def except(other: Dataset[T]): Dataset[T] /** *返回一个新的数据集,它只包含 func 或 condition 返回 true 的元素。 */ def filter(func: (T) => Boolean): Dataset[T] def filter(conditionExpr: String): Dataset[T] //peopleDs.filter("age > 15") def filter(condition: Column): Dataset[T] //peopleDs.filter($"age" > 15) /** *返回一个新的数据集,首先将一个函数应用到这个数据集的所有元素上,然 *后将结果展开。 */ def flatMap[U](func: (T) => TraversableOnce[U])(implicit arg0: Encoder[U]) : Dataset[U] /** *返回一个 KeyValueGroupedDataset,其中的数据按给定的键函数分组。 */ def groupByKey[K](func: (T) => K)(implicit arg0: Encoder[K]) : KeyValueGroupedDataset[K, T] /** *返回仅包含此数据集和另一个数据集中的行的新数据集,即求交集。 */ def intersect(other: Dataset[T]): Dataset[T] /** *使用内部等连接来连接这个数据集,为每一对条件为 true 的数据返回一个Tuple2。 * joinType 默认为 inner,还可为 cross、outer、full、full_outer、left、left_outer、 * right、right_outer。 */ def joinWith[U](other: Dataset[U], condition: Column): Dataset[(T, U)] def joinWith[U](other: Dataset[U], condition: Column, joinType: String) : Dataset[(T, U)] /** *通过获取前 n 行返回新数据集。这个函数与 head 的区别在于,head 是一个 *操作,返回一个数组(通过触发查询执行),而 limit 返回一个新的 Dataset。 */ def limit(n: Int): Dataset[T] /** *返回一个新的数据集,其中包含对每个元素应用 func 的结果。 */ def map[U](func: (T) =>U)(implicit arg0: Encoder[U]): Dataset[U] /** *返回一个新的数据集,其中包含对每个分区应用 func 的结果。 */ def mapPartitions[U] (func: (Iterator[T]) => Iterator[U])(implicit arg0: Encoder[U]): Dataset[U] /** *返回按给定表达式排序的新数据集。这是 sort 函数的别名。 */ def orderBy(sortExprs: Column*): Dataset[T] def orderBy(sortCol: String, sortCols: String*): Dataset[T] /** *使用提供的权重随机分割此数据集。seed 表示抽样种子。 */ def randomSplit(weights: Array[Double]): Array[Dataset[T]] def randomSplit(weights: Array[Double], seed: Long): Array[Dataset[T]] def randomSplitAsList(weights: Array[Double], seed: Long): List[Dataset[T]] /** *如不指定 numPartitions,使用 spark.sql.shuffle.partitions 作为分区数量,返回 *根据给定分区表达式分区的新数据集 , 结果数据集是散列分区的。 * repartitionByRange 的结果数据集是范围分区的。 */ def repartition(partitionExprs: Column*): Dataset[T] def repartition(numPartitions: Int, partitionExprs: Column*): Dataset[T] def repartition(numPartitions: Int): Dataset[T] def repartitionByRange(partitionExprs: Column*): Dataset[T] def repartitionByRange(numPartitions: Int, partitionExprs: Column*): Dataset[T] /** *通过使用用户提供的种子对一小部分行进行抽样,返回一个新数据集。 */ def sample(withReplacement: Boolean, fraction: Double): Dataset[T] def sample(withReplacement: Boolean, fraction: Double, seed: Long): Dataset[T] /** *通过计算每个元素的给定列表达式返回新数据集。 */ def select[U1, U2, U3, U4, U5]( c1: TypedColumn[T, U1], c2: TypedColumn[T, U2], c3: TypedColumn[T, U3], c4: TypedColumn[T, U4], c5: TypedColumn[T, U5]): Dataset[(U1, U2, U3, U4, U5)] def select[U1, U2, U3, U4]( c1: TypedColumn[T, U1], c2: TypedColumn[T, U2], c3: TypedColumn[T, U3], c4: TypedColumn[T, U4]): Dataset[(U1, U2, U3, U4)] def select[U1, U2, U3]( c1: TypedColumn[T, U1], c2: TypedColumn[T, U2], c3: TypedColumn[T, U3]): Dataset[(U1, U2, U3)] def select[U1, U2]( c1: TypedColumn[T, U1], c2: TypedColumn[T, U2]): Dataset[(U1, U2)] def select[U1](c1: TypedColumn[T, U1]): Dataset[U1] //示例 val ds = Seq(1, 2, 3).toDS() val newDS = ds.select(expr("value + 1").as[Int]) /** *返回按给定表达式排序的新数据集。 */ def sort(sortExprs: Column*): Dataset[T] def sort(sortCol: String, sortCols: String*): Dataset[T] /** *返回一个新的数据集,每个分区都按照给定的表达式排序。 */ def sortWithinPartitions(sortExprs: Column*): Dataset[T] def sortWithinPartitions(sortCol: String, sortCols: String*): Dataset[T] /** *用于链接自定义转换的简洁语法。 */ def transform[U](t: (Dataset[T]) => Dataset[U]): Dataset[U] //示例 def featurize(ds: Dataset[T]): Dataset[U] = ... ds .transform(featurize) .transform(...) /** *返回一个新数据集,该数据集包含此数据集和另一个数据集中的行并集。 */ def union(other: Dataset[T]): Dataset[T] //按列位置 def unionByName(other: Dataset[T]): Dataset[T] //按列名 def unionAll(other: Dataset[T]): Dataset[T] //已过时 /** *使用给定的 SQL 表达式过滤行。等价于 filter。 */ def where(conditionExpr: String): Dataset[T] def where(condition: Column): Dataset[T] ```