Leo*_*orn 18 scala apache-spark
edf.select("x").distinct.show()
显示DataFrame x
列中显示的不同值edf
.
是否有一种有效的方法来显示这些不同值在数据框中出现的次数?(计算每个不同的值)
zer*_*323 44
countDistinct
可能是第一选择:
import org.apache.spark.sql.functions.countDistinct
df.agg(countDistinct("some_column"))
Run Code Online (Sandbox Code Playgroud)
如果速度比您可能考虑的精度更重要approx_count_distinct
(approxCountDistinct
在Spark 1.x中):
import org.apache.spark.sql.functions.approx_count_distinct
df.agg(approx_count_distinct("some_column"))
Run Code Online (Sandbox Code Playgroud)
获得价值和数量:
df.groupBy("some_column").count()
Run Code Online (Sandbox Code Playgroud)
在SQL(spark-sql
)中:
SELECT COUNT(DISTINCT some_column) FROM df
Run Code Online (Sandbox Code Playgroud)
和
SELECT approx_count_distinct(some_column) FROM df
Run Code Online (Sandbox Code Playgroud)
不求助于 sql 函数的另一种选择
df.groupBy('your_column_name').count().show()
Run Code Online (Sandbox Code Playgroud)
show将打印不同的值及其出现的次数。没有显示的结果将是一个数据框。
小智 6
import org.apache.spark.sql.functions.countDistinct
df.groupBy("a").agg(countDistinct("s")).collect()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
49847 次 |
最近记录: |