"Error in agg(x, ...) : agg can only support Column or character" 错误
"Error in agg(x, ...) : agg can only support Column or character" error
我正在尝试聚合 SparkR 数据框以获得两个摘要变量,
我尝试使用的代码是:
temp1_aggregate<- temp1 %>%
groupBy("Week", "Store", "Brand", "Conversion_Factor", "Manufacturer", "Type") %>%
agg(Value=mean("Value"), Volume=mean("Volume"))
我也试过 summarise() 而不是 agg():
temp1_aggregate<- temp1 %>%
groupBy("Week", "Store", "Brand", "Conversion_Factor", "Manufacturer", "Type") %>%
SparkR::summarize(Value=mean("Value", na.rm=TRUE),Volume=mean("Volume", na.rm=TRUE))
其中 Value 和 Volume 是数字(双精度)类型的列。
这两个都会导致相同的错误:
Error in agg(x, ...) : agg can only support Column or character
In addition: Warning message:
In mean.default("Value", na.rm = TRUE) :
argument is not numeric or logical: returning NA
我对此感到很困惑,因为值和体积都是列并且都是数字(我检查过 - 虽然我不能共享数据,因为它是专有的)。
我假设这些错误是因为语法在某种程度上不正确(我试图从 dplyr 转换为 SparkR,因为我需要让它与 spark 数据帧一起工作),但我无法弄清楚如何。
任何人都可以建议如何让它工作吗?
character
没有 SparkR
均值实现 - 它只能采用列,因此您可以从警告消息中推断出,mean("Volume")
调用被分派到 base::mean
和 returns NA
.
要使其正常工作,您必须使用显式 columns
agg(Value = mean(column("Value")), Volume = mean(column("Volume")))
您也可以将 mean
替换为 avg
SparkR::avg
agg(Value = avg(column("Value")), Volume = avg(column("Volume")))
它不会隐藏任何内置方法,并且会提供更有意义的错误,如果你通过普通 character
:
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘avg’ for signature ‘"character"’
我正在尝试聚合 SparkR 数据框以获得两个摘要变量, 我尝试使用的代码是:
temp1_aggregate<- temp1 %>%
groupBy("Week", "Store", "Brand", "Conversion_Factor", "Manufacturer", "Type") %>%
agg(Value=mean("Value"), Volume=mean("Volume"))
我也试过 summarise() 而不是 agg():
temp1_aggregate<- temp1 %>%
groupBy("Week", "Store", "Brand", "Conversion_Factor", "Manufacturer", "Type") %>%
SparkR::summarize(Value=mean("Value", na.rm=TRUE),Volume=mean("Volume", na.rm=TRUE))
其中 Value 和 Volume 是数字(双精度)类型的列。
这两个都会导致相同的错误:
Error in agg(x, ...) : agg can only support Column or character
In addition: Warning message:
In mean.default("Value", na.rm = TRUE) :
argument is not numeric or logical: returning NA
我对此感到很困惑,因为值和体积都是列并且都是数字(我检查过 - 虽然我不能共享数据,因为它是专有的)。
我假设这些错误是因为语法在某种程度上不正确(我试图从 dplyr 转换为 SparkR,因为我需要让它与 spark 数据帧一起工作),但我无法弄清楚如何。
任何人都可以建议如何让它工作吗?
character
没有 SparkR
均值实现 - 它只能采用列,因此您可以从警告消息中推断出,mean("Volume")
调用被分派到 base::mean
和 returns NA
.
要使其正常工作,您必须使用显式 columns
agg(Value = mean(column("Value")), Volume = mean(column("Volume")))
您也可以将 mean
替换为 avg
SparkR::avg
agg(Value = avg(column("Value")), Volume = avg(column("Volume")))
它不会隐藏任何内置方法,并且会提供更有意义的错误,如果你通过普通 character
:
Error in (function (classes, fdef, mtable) : unable to find an inherited method for function ‘avg’ for signature ‘"character"’