gpt4 book ai didi

R - 如何使用sparklyr复制spark数据框中的行

转载 作者:行者123 更新时间:2023-12-01 19:21:29 25 4
gpt4 key购买 nike

有没有办法使用sparklyr/dplyr的函数来复制Spark数据帧的行?

sc <- spark_connect(master = "spark://####:7077")

df_tbl <- copy_to(sc, data.frame(row1 = 1:3, row2 = LETTERS[1:3]), "df")

这是所需的输出,保存到新的 Spark 表中:

> df2_tbl
row1 row2
<int> <chr>
1 1 A
2 1 A
3 1 A
4 2 B
5 2 B
6 2 B
7 3 C
8 3 C
9 3 C

最佳答案

使用sparklyr,您可以按照@Oli的建议使用arrayexplode:

df_tbl %>% 
mutate(arr = explode(array(1, 1, 1))) %>%
select(-arr)

# # Source: lazy query [?? x 2]
# # Database: spark_connection
# row1 row2
# <int> <chr>
# 1 1 A
# 2 1 A
# 3 1 A
# 4 2 B
# 5 2 B
# 6 2 B
# 7 3 C
# 8 3 C
# 9 3 C

和广义

library(rlang)

df_tbl %>%
mutate(arr = !!rlang::parse_quo(
paste("explode(array(", paste(rep(1, 3), collapse = ","), "))")
)) %>% select(-arr)

# # Source: lazy query [?? x 2]
# # Database: spark_connection
# row1 row2
# <int> <chr>
# 1 1 A
# 2 1 A
# 3 1 A
# 4 2 B
# 5 2 B
# 6 2 B
# 7 3 C
# 8 3 C
# 9 3 C

您可以在其中轻松调整行数。

关于R - 如何使用sparklyr复制spark数据框中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44530564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com