spark_read_parquet 中的列选项
The columns option in spark_read_parquet
我尝试使用 spark_read_parquet
、
从 'table' 中读取列的子集
temp <- spark_read_parquet(sc, name='mytable',columns=c("Col1","Col2"),
path="/my/path/to/the/parquet/folder")
但是我得到了错误:
Error: java.lang.IllegalArgumentException: requirement failed: The number of columns doesn't match.
Old column names (54): .....
我的语法正确吗?我尝试使用 columns
参数在谷歌上搜索一个(真实的)代码示例,但找不到。
(我提前道歉...我真的不知道如何给你一个涉及火花和云的可重现的例子。)
TL;DR 这不是 columns
的工作方式。当像这样应用时 are used to ,因此它的长度应该等于输入的长度。
使用方法是(请注意memory = FALSE
,这对它的正确工作至关重要):
spark_read_parquet(
sc, name = "mytable", path = "/tmp/foo",
memory = FALSE
) %>% select(Col1, Col2)
可选地后跟
... %>%
sdf_persist()
如果你有一个字符向量,你可以使用rlang
:
library(rlang)
cols <- c("Col1", "Col2")
spark_read_parquet(sc, name="mytable", path="/tmp/foo", memory=FALSE) %>%
select(!!! lapply(cols, parse_quosure))
我尝试使用 spark_read_parquet
、
temp <- spark_read_parquet(sc, name='mytable',columns=c("Col1","Col2"),
path="/my/path/to/the/parquet/folder")
但是我得到了错误:
Error: java.lang.IllegalArgumentException: requirement failed: The number of columns doesn't match.
Old column names (54): .....
我的语法正确吗?我尝试使用 columns
参数在谷歌上搜索一个(真实的)代码示例,但找不到。
(我提前道歉...我真的不知道如何给你一个涉及火花和云的可重现的例子。)
TL;DR 这不是 columns
的工作方式。当像这样应用时 are used to
使用方法是(请注意memory = FALSE
,这对它的正确工作至关重要):
spark_read_parquet(
sc, name = "mytable", path = "/tmp/foo",
memory = FALSE
) %>% select(Col1, Col2)
可选地后跟
... %>%
sdf_persist()
如果你有一个字符向量,你可以使用rlang
:
library(rlang)
cols <- c("Col1", "Col2")
spark_read_parquet(sc, name="mytable", path="/tmp/foo", memory=FALSE) %>%
select(!!! lapply(cols, parse_quosure))