1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
| alias(alias: Symbol): Dataset[T] alias(alias: String): Dataset[T] as(alias: Symbol): Dataset[T] as(alias: String): Dataset[T] 给Dataset一个别名
coalesce(numPartitions: Int): Dataset[T] 分区合并(只能减少分区)
distinct(): Dataset[T] dropDuplicates的别名
dropDuplicates(col1: String, cols: String*): Dataset[T] dropDuplicates(colNames: Array[String]): Dataset[T] dropDuplicates(colNames: Seq[String]): Dataset[T] dropDuplicates(): Dataset[T] 根据指定字段,对数据去重。
except(other: Dataset[T]): Dataset[T] 去除other中也有的行。同EXCEPT DISTINCT in SQL。
filter(func: (T) ⇒ Boolean): Dataset[T] filter(conditionExpr: String): Dataset[T] filter(condition: Column): Dataset[T] 根据条件过滤行 e.g. peopleDs.filter("age > 15") peopleDs.filter($"age" > 15)
flatMap[U](func: (T) ⇒ TraversableOnce[U])(implicit arg0: Encoder[U]): Dataset[U] 第一步和map一样,最后将所有的输出合并。
groupByKey[K](func: (T) ⇒ K)(implicit arg0: Encoder[K]): KeyValueGroupedDataset[K, T] 现根据func函数生成key,然后按key分组。
intersect(other: Dataset[T]): Dataset[T] 求两个dataset的交集,等同于INTERSECT in SQL.
joinWith[U](other: Dataset[U], condition: Column): Dataset[(T, U)] inner equi-join两个dataset
joinWith[U](other: Dataset[U], condition: Column, joinType: String): Dataset[(T, U)] joinType可选:inner, cross, outer, full, full_outer, left, left_outer, right, right_outer
limit(n: Int): Dataset[T] 返回前n行,与head的区别是,head是一个action,会马上返回结果数组。
map[U](func: (T) ⇒ U)(implicit arg0: Encoder[U]): Dataset[U] 在每一个元素应用func函数,返回包含结果集的dataset。
mapPartitions[U](func: (Iterator[T]) ⇒ Iterator[U])(implicit arg0: Encoder[U]): Dataset[U] 在每一个分区应用func函数,返回包含结果集的dataset。
orderBy(sortExprs: Column*): Dataset[T] orderBy(sortCol: String, sortCols: String*): Dataset[T] sort的别名
sort(sortExprs: Column*): Dataset[T] sort(sortCol: String, sortCols: String*): Dataset[T] 按指定列排序,默认asc。 e.g. ds.sort($"col1", $"col2".desc)
sortWithinPartitions(sortExprs: Column*): Dataset[T] sortWithinPartitions(sortCol: String, sortCols: String*): Dataset[T] 分区内排序,同"SORT BY" in SQL (Hive QL).
randomSplit(weights: Array[Double]): Array[Dataset[T]] randomSplit(weights: Array[Double], seed: Long): Array[Dataset[T]] 按权重随机分割数据
repartition(partitionExprs: Column*): Dataset[T] repartition(numPartitions: Int, partitionExprs: Column*): Dataset[T] repartition(numPartitions: Int): Dataset[T] 按指定表达式,分区数,重新分区(hash),同"DISTRIBUTE BY" in SQL。 默认分区数为spark.sql.shuffle.partitions
repartitionByRange(partitionExprs: Column*): Dataset[T] repartitionByRange(numPartitions: Int, partitionExprs: Column*): Dataset[T] 按指定表达式,分区数,重新分区,采用Range partition方式,按键范围分区。 分区默认排序方式为ascending nulls first,分区内数据未排序。
sample(withReplacement: Boolean, fraction: Double): Dataset[T] sample(withReplacement: Boolean, fraction: Double, seed: Long): Dataset[T] sample(fraction: Double): Dataset[T] sample(fraction: Double, seed: Long): Dataset[T] 随机取样本数据 withReplacement:Sample with replacement or not. fraction:Fraction of rows to generate, range [0.0, 1.0]. seed:Seed for sampling.
select[U1](c1: TypedColumn[T, U1]): Dataset[U1] 根据列/表达式获取列数据
transform[U](t: (Dataset[T]) ⇒ Dataset[U]): Dataset[U] 应用t函数转换Dataset。
union(other: Dataset[T]): Dataset[T] 等于UNION ALL in SQL。 注意是按列位置合并: val df1 = Seq((1, 2, 3)).toDF("col0", "col1", "col2") val df2 = Seq((4, 5, 6)).toDF("col1", "col2", "col0") df1.union(df2).show
unionByName(other: Dataset[T]): Dataset[T] 同union方法,但是按列名合并: val df1 = Seq((1, 2, 3)).toDF("col0", "col1", "col2") val df2 = Seq((4, 5, 6)).toDF("col1", "col2", "col0") df1.unionByName(df2).show
where(conditionExpr: String): Dataset[T] where(condition: Column): Dataset[T] filter的别名
|