如何使用Python中的Boto从s3下载snappy.parquet文件

时间:2018-02-23 18:26:05

标签: python-2.7 amazon-s3 boto parquet snappy

我是新手,并尝试从Amazon s3下载snappy.parquet文件我以后可以转换为CSV文件。 我尝试使用以下在线发现的示例,我得到一个空文件夹。谁能帮帮我吗?

@app.route('/converted.html', methods = ['GET', 'POST'])
def converted():
    pyperclip_Test = pyperclip.copy("apple")

    return render_template('converted.html', 
        pyperclip_Test = pyperclip_Test)

1 个答案:

答案 0 :(得分:0)

您正在使用的脚本似乎以递归方式将指定的S3存储桶(BUCKET_NAME)的内容下载到指定的本地目录(DOWNLOAD_LOCATION_PATH)。 FWIW,我注意到这个脚本看起来像here

“当前文件是...”输出行应该显示正在写入的这些文件的进度。您可能遇到的一个问题是由于这一行:

s3_path = DOWNLOAD_LOCATION_PATH + key_string

如果您在顶部指定DOWNLOAD_LOCATION_PATH作为没有尾随'/'字符的目录,例如像这样:

DOWNLOAD_LOCATION_PATH = '/tmp/my_dir'

然后,正在下载的文件不会写在/tmp/my_dir目录下,而是直接写在/tmp/上,每个文件名前缀为my_dir!您可以通过将此行更改为:

来解决此问题
    s3_path = os.path.join(DOWNLOAD_LOCATION_PATH, key_string)

除此之外,脚本似乎工作正常。您可能希望在最顶部添加此行:

from __future__ import print_function

如果您仍在使用Python 2.x,否则打印输出看起来有点奇怪(print会认为您正在打印2元组。)

你的问题也让你觉得你真的只想要/需要从存储桶中下载一个文件 - 如果是这样的话,这不是一个很好用的脚本,因为它正在下载所有东西。