Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 以年为单位计算行和_R_Apache Spark_Dataframe_Dplyr_Sparklyr - Fatal编程技术网

R 以年为单位计算行和

R 以年为单位计算行和,r,apache-spark,dataframe,dplyr,sparklyr,R,Apache Spark,Dataframe,Dplyr,Sparklyr,嗨,我有一个以下的火花数据帧。我想跨行求和。我找不到任何等价的行和函数。我尝试了以下查询,但它对列值求和 trans1M_20 %>% dplyr::select(trans1M_20_clicks) %>% dplyr::select(Small_SubChannel_Clicks_names) %>% dplyr::summarise_each(funs(sum)) 请注意,Alma_1是小的子通道名称 阿拉木图1 <

嗨,我有一个以下的火花数据帧。我想跨行求和。我找不到任何等价的行和函数。我尝试了以下查询,但它对列值求和

trans1M_20 %>% 
        dplyr::select(trans1M_20_clicks) %>%
        dplyr::select(Small_SubChannel_Clicks_names) %>%
        dplyr::summarise_each(funs(sum))
请注意,Alma_1是小的子通道名称

阿拉木图1

<dbl>

0               
0               
0               
0               
0               
0               
0               
0               
0               
0

有一种方法可以通过使用
DBI
包来执行您想要的操作,该包允许您向Spark表发送SQL查询。它不是一个
dplyr
解决方案,但在其他人提供更“dply-ish”的解决方案之前,它可能还是有用的

您必须在查询中手动包含列名。例如,如果您想获得“trans1M_20_clicks”和“Small_SubChannel_clicks_names”列的总和,可以执行以下操作:

resSparkSQL <- DBI::dbSendQuery(sc, "SELECT trans1M_20_clicks + Small_SubChannel_Clicks_names as Total FROM your_table_name_in_spark")

有一种方法可以通过使用
DBI
包来执行您想要的操作,该包允许您向Spark表发送SQL查询。它不是一个
dplyr
解决方案,但在其他人提供更“dply-ish”的解决方案之前,它可能还是有用的

您必须在查询中手动包含列名。例如,如果您想获得“trans1M_20_clicks”和“Small_SubChannel_clicks_names”列的总和,可以执行以下操作:

resSparkSQL <- DBI::dbSendQuery(sc, "SELECT trans1M_20_clicks + Small_SubChannel_Clicks_names as Total FROM your_table_name_in_spark")

只要列数较少,就可以生成并计算表达式:

library(dplyr)
library(rlang)

df <- copy_to(sc, data.frame(x=c(1, 3), y=c(2, 4)))

columns_to_sum <- colnames(df)

df %>% transmute(total = !!parse_expr(paste(columns_to_sum, collapse = " + ")))
库(dplyr)
图书馆(rlang)

df只要列数较少,就可以生成并计算表达式:

library(dplyr)
library(rlang)

df <- copy_to(sc, data.frame(x=c(1, 3), y=c(2, 4)))

columns_to_sum <- colnames(df)

df %>% transmute(total = !!parse_expr(paste(columns_to_sum, collapse = " + ")))
库(dplyr)
图书馆(rlang)

df您所说的“小的子频道点击”是什么意思?名称可以包含任意数量的列?当您使用
dplyr::select(Small\u SubChannel\u Clicks\u names)
时,您只选择了该列。Small\u SubChannel\u Clicks\u names包含多个列的名称,所以当我在select语句中使用该名称时,我得到了这些列的子集,不想将它们合并到一个列中。无需手动操作-只需
粘贴(“选择”,paste(cols,collapse=“+”,“作为您的\u表\u name\u中的总计”)
glue::glue(“选择{paste(cols,collapse='+')}作为您的\u表\u name\u中的总计”)
其中
cols
是名称向量。您所说的“小的子通道\u名称可以包含任意数量的列”是什么意思?当您使用
dplyr::select(Small\u SubChannel\u Clicks\u names)
时,您只选择了该列。Small\u SubChannel\u Clicks\u names包含多个列的名称,所以当我在select语句中使用该名称时,我得到了这些列的子集,不想将它们合并到一个列中。无需手动操作-只需
粘贴(“选择”,粘贴(cols,collapse=“+”,“作为来自您的\u表\u spark中的名称\u的总计”)
glue::glue(“选择{paste(cols,collapse='+')}作为来自您的\u表\u spark中的名称\u的总计”)
其中
cols
是名称向量。