저는 스파크로 일하는 새로운 사람입니다. 스파크 데이터 프레임의 많은 수의 열에 벡터의 값을 곱하고 싶습니다.벡터를 사용하여 dEFF 스파크 DF의 여러 열을 수정할 수 있습니까?
library(dplyr)
library(rlang)
library(sparklyr)
sc1 <- spark_connect(master = "local")
mtcars_sp = sdf_copy_to(sc1, mtcars, overwrite = TRUE)
mtcars_cols = colnames(mtcars_sp)
mtc_factors = 0:10/10
# mutate 1 col at a time
for (i in 1:length(mtcars_cols)) {
# set equation and print - use sym() convert a string
mtcars_eq = quo(UQ(sym(mtcars_cols[i])) * mtc_factors[i])
# mutate formula - LHS resolves to a string, RHS a quosure
mtcars_sp = mtcars_sp %>%
mutate(!!mtcars_cols[i] := !!mtcars_eq)
}
dbplyr::sql_render(mtcars_sp)
mtcars_sp
이 mtcars와 작품을 좋아 다음과 같이 지금까지 mtcars와 나는 루프 mutate_at에 대한 사용. 그러나 sql_render에 표시된 것처럼 중첩 된 SQL 쿼리가 spark로 전송되고 많은 열로 구분됩니다. 이 경우 단일 SQL 쿼리를 보내는 대신 dplyr를 사용할 수 있습니까?
나는 너무 비싸기 때문에 데이터를 조 변경하지 않을 것입니다. 어떤 도움을 많이 주시면 감사하겠습니다! 결과는 분리 할 수
scaled <- mtcars_sp %>%
ft_vector_assembler(mtcars_cols, "features") %>%
ft_elementwise_product("features", "features_scaled", mtc_factors)
:
일반적으로
고마워요! 나는 MLlib 알고리즘을 지금 사용하지 않고 있으므로 첫 번째 접근법이 완벽합니다. – swany