sparkR 1.4.0 中的聚合统计
Aggregation statistics in sparkR 1.4.0
我是普通 R 用户。
对于如下所示的 data.frame
,我想统计基本的聚合统计信息;最小值、第一分位数、中位数、第三分位数和最大值。以下代码使用 reshape2
包和 dplyr
在常规普通 R 中继续该操作是
library(reshape2)
library(dplyr)
tidy_data <- data.frame( topic1 = rnorm(10^6),
topic2 = rnorm(10^6),
topic3 = rnorm(10^6),
topic4 = rnorm(10^6),
topic5 = rnorm(10^6))
tidy_data %>%
melt(measure.vars = c("topic1","topic2","topic3","topic4","topic5")) %>%
group_by(variable) %>%
summarise( MIN = min(value),
Q1 = quantile(value, 0.25),
Q2 = median(value),
Q3 = quantile(value, 0.75),
MAX = max(value))
我想知道如何在 sparkR
中的分布式数据帧(Spark 的 DataFrame
对象)上重现此类操作。我设法计算了每个变量的最大值,但还不够和优雅的方式。有没有办法既高效又流畅地做到这一点?
我的 sparkR
代码如下:
system.time({
print(
head(
summarize(topics5,
MAX5 = max(topics5$topic5),
MAX4 = max(topics5$topic4),
MAX3 = max(topics5$topic3),
MAX2 = max(topics5$topic2),
MAX1 = max(topics5$topic1)
)
)
)
})
您可以使用 SparkR 中的 describe
方法来生成数字列的统计信息。例如:
df <- data.frame(a=rnorm(10), b=rnorm(10))
sdf <- createDataFrame(sqlContext, df)
collect(describe(sdf)).
这应该打印计数、平均值、最大值、最小值等
我是普通 R 用户。
对于如下所示的 data.frame
,我想统计基本的聚合统计信息;最小值、第一分位数、中位数、第三分位数和最大值。以下代码使用 reshape2
包和 dplyr
在常规普通 R 中继续该操作是
library(reshape2)
library(dplyr)
tidy_data <- data.frame( topic1 = rnorm(10^6),
topic2 = rnorm(10^6),
topic3 = rnorm(10^6),
topic4 = rnorm(10^6),
topic5 = rnorm(10^6))
tidy_data %>%
melt(measure.vars = c("topic1","topic2","topic3","topic4","topic5")) %>%
group_by(variable) %>%
summarise( MIN = min(value),
Q1 = quantile(value, 0.25),
Q2 = median(value),
Q3 = quantile(value, 0.75),
MAX = max(value))
我想知道如何在 sparkR
中的分布式数据帧(Spark 的 DataFrame
对象)上重现此类操作。我设法计算了每个变量的最大值,但还不够和优雅的方式。有没有办法既高效又流畅地做到这一点?
我的 sparkR
代码如下:
system.time({
print(
head(
summarize(topics5,
MAX5 = max(topics5$topic5),
MAX4 = max(topics5$topic4),
MAX3 = max(topics5$topic3),
MAX2 = max(topics5$topic2),
MAX1 = max(topics5$topic1)
)
)
)
})
您可以使用 SparkR 中的 describe
方法来生成数字列的统计信息。例如:
df <- data.frame(a=rnorm(10), b=rnorm(10))
sdf <- createDataFrame(sqlContext, df)
collect(describe(sdf)).
这应该打印计数、平均值、最大值、最小值等