我有一个函数,称之为a()
,它将某些内容写入文件和另一个函数,称之为b()
,它从文件中读取内容。我想管道a()
的输出并将其传递到b()
,而没有实际创建的文件。这可能吗?
(好奇:a()
是aws.s3::save_object()
,它将对象从S3存储桶保存到磁盘,而b()
是feather::read_feather()
,它将羽毛文件读入一个小组。)
答案 0 :(得分:1)
save_object()
的返回值是一个包含保存文件路径的文件字符串,因此您可以嵌套函数调用:
library("aws.s3")
library("feather")
read_feather(save_object("objectkey", "bucket"))
如果feather能够从连接中读取(似乎不是,但如果可以),则可以跳过磁盘I / O并改为使用get_object()
:
read_feather(rawConnection(get_object("objectkey", "bucket")))
(注意:我是aws.s3包的维护者。)