为什么 SparkR 列上的 countDistinct/n_distinct 不起作用?
Why does countDistinct/n_distinct on SparkR column not work?
我想计算(SparkR 数据帧的)SparkR 列的不同元素:
df$col1
1
2
2
5
6
5
不同的元素:1,2,5,6
当我在我的 SparkR 列上尝试 countDistinct 时,我只得到这个结果:
> countDistinct(df$col1)
Column count(col1)
我必须使用 agg 函数吗?我试过但失败了,因为它似乎不适用于 Columns。
> df <- c(1,2,3,4,5,6,7,4,5,6)
> df_uniq <- unique(df)
> length(df_uniq)
[1] 7
找出 df 中各列的唯一值
unique(df$col1)
length(unique(df$col1))
希望您能得到答案。
这是预期的结果。 SparkR 列不是数据容器。它只是执行计划中逻辑操作的一种表示。如果你得到一个结果,你已经在特定的上下文中对其进行了评估:
# 2.0.0+ syntax
df <- createDataFrame(data.frame(col1=c(1, 2, 2, 5, 6, 5)))
collect(select(df, countDistinct(df$col1)))
## count(DISTINCT col1)
## 1 4
我想计算(SparkR 数据帧的)SparkR 列的不同元素:
df$col1
1
2
2
5
6
5
不同的元素:1,2,5,6
当我在我的 SparkR 列上尝试 countDistinct 时,我只得到这个结果:
> countDistinct(df$col1)
Column count(col1)
我必须使用 agg 函数吗?我试过但失败了,因为它似乎不适用于 Columns。
> df <- c(1,2,3,4,5,6,7,4,5,6)
> df_uniq <- unique(df)
> length(df_uniq)
[1] 7
找出 df 中各列的唯一值
unique(df$col1)
length(unique(df$col1))
希望您能得到答案。
这是预期的结果。 SparkR 列不是数据容器。它只是执行计划中逻辑操作的一种表示。如果你得到一个结果,你已经在特定的上下文中对其进行了评估:
# 2.0.0+ syntax
df <- createDataFrame(data.frame(col1=c(1, 2, 2, 5, 6, 5)))
collect(select(df, countDistinct(df$col1)))
## count(DISTINCT col1)
## 1 4