【问题标题】:Saving data from Snowflake to S3 bucket as a XLSX file将数据从雪花保存到 S3 存储桶作为 XLSX 文件
【发布时间】:2021-08-19 09:20:46
【问题描述】:

我不想保存 Snowflake 的查询结果。我可以将文件另存为 CSV 文件,但是否可以将数据另存为 XLSX 文件

我使用的查询:

file_name = 'w{}_processedsample_{}_rawsample.xlsx'.format(wave_number, time_stamp)
    
query = f"select * from {database}.{schema}.{view} where wavenumber={wave_number}"
    
get_view_query = f"copy into  @{database}.{schema}.{save_to_s3_stage}/{file_name} from ({query})  HEADER = TRUE OVERWRITE = TRUE SINGLE=TRUE FILE_FORMAT = (TYPE=CSV FIELD_DELIMITER = ',' NULL_IF ='' ESCAPE_UNENCLOSED_FIELD = '\\\\' EMPTY_FIELD_AS_NULL = FALSE ENCODING = UTF8)"

当前 xlsx 文件已损坏。我还需要不压缩 xlsx 文件。

【问题讨论】:

    标签: amazon-web-services amazon-s3 snowflake-cloud-data-platform


    【解决方案1】:

    当您从 Snowflake 卸载数据时,您只能将其保存到 supported file formats 之一:

    您无法将文件扩展名更改为您喜欢的任何内容。在您的示例中,您正在卸载一个简单命名为 .xlsx 扩展名的 CSV 文件,因此您的计算机无法使用 excel 正确打开它(可能是因为它实际上是压缩的)。

    为确保文件未压缩,请将文件格式更改为(最后一行是更改):

    FILE_FORMAT = (
       TYPE=CSV FIELD_DELIMITER = ',' 
       NULL_IF ='' 
       ESCAPE_UNENCLOSED_FIELD = '\\\\' 
       EMPTY_FIELD_AS_NULL = FALSE 
       ENCODING = UTF8
       COMPRESSION= NONE
    )"
    

    【讨论】:

    • 因此无法将数据作为 XLSX 文件卸载...好吧,我会寻找其他方法。
    • 没错。为什么不下载为 csv 并在 Excel 中打开它?
    • 我需要将数据作为 XLSX 文件卸载到 S3 存储桶中,因为另一个系统与该存储桶交互,并且出于某种奇怪的原因,他们的系统需要 XLSX 文件而不是 csv 文件。
    • 那么你最好的选择可能是使用 Pandas 并使用数据框来 excel 函数。
    • 这正是我所做的。我已经有一个功能可以进行转换和数据上传。我只是想知道我是否可以避免这一步。
    猜你喜欢
    • 2022-01-24
    • 2022-01-22
    • 1970-01-01
    • 2019-11-07
    • 2017-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    相关资源
    最近更新 更多