【问题标题】:how can I save a binary file from cloud object storage to the notebook filesystem?如何将二进制文件从云对象存储保存到笔记本文件系统?
【发布时间】:2018-12-25 00:00:43
【问题描述】:

从 Watson Studio 笔记本处理 IBM Cloud Object Storage 中的文件时,我经常需要将文件保存到笔记本本地文件系统,然后我可以从 R 函数访问它们。

Project-lib 允许我从云对象存储中检索文件作为字节数组,如何将字节数组保存到文件中?

library(projectLib)
project <- projectLib::Project$new(projectId="secret, projectToken="secret")
pc <- project$project_context

my.file <- project$get_file("myfile.csv.gz")

#
# Question: how do I save the file to disk ??
#

df = read.csv2("myfile.csv.gz", sep = "|",
                           colClasses=c("ASSETUNIT_GLOBALID"="character"))

我尝试使用save(),但这会破坏文件中的数据。

【问题讨论】:

    标签: r ibm-cloud object-storage watson-studio project-lib


    【解决方案1】:

    R 函数 writeBin 是我的解决方案:

    library(projectLib)
    project <- projectLib::Project$new(projectId="secret, projectToken="secret")
    pc <- project$project_context
    
    my.file <- project$get_file("myfile.csv.gz")
    
    #
    # writeBin was the solution :
    #
    
    writeBin(my.file, 'myfile.csv.gz', size = NA_integer_,
             endian = .Platform$endian, useBytes = TRUE)
    
    df = read.csv2("myfile.csv.gz", sep = "|",
                               colClasses=c("ASSETUNIT_GLOBALID"="character"))
    

    【讨论】:

      猜你喜欢
      • 2020-04-08
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      • 2016-01-24
      • 2018-12-25
      • 1970-01-01
      • 1970-01-01
      • 2012-11-14
      相关资源
      最近更新 更多