将数据帧作为镶木地板文件直接发送到保管箱

Sending dataframe as parquet file directly to dropbox

在我的脚本中,我生成了一个数据框,我想将其作为镶木地板文件直接上传到保管箱。我设法找到了这样的解决方案:

https://gist.github.com/MaxHalford/f17994c77bb775fdd04c9cd925e0b279

这有助于我保存数据框。不过,我真的很想直接发一个parquet文件。

我觉得比较直观的选项:

fileToSave=tempDf.to_parquet('newFile.parquet')
upload_file(dbx, file_location, fileToSave)

但它抛出

TypeError: expected str, bytes or os.PathLike object, not NoneType

知道其他方法吗?

当您调用 fileToSave=tempDf.to_parquet('newFile.parquet') 时,它会将 table 保存在名为 newfile.parquet 和 returns None

的本地文件中

你想做的是:

data = tempDf.to_parquet() #  bytes content of the parquet file
dbx.files_upload(
        f=data,
        path=path,
        mode=dropbox.files.WriteMode.overwrite
    )

这会将 df 转换为字节(在内存中),然后您可以将其上传到保管箱。