【问题标题】:Python Output Snowflake Connector To CSVPython 输出雪花连接器到 CSV
【发布时间】:2020-05-28 17:00:18
【问题描述】:

我目前正在尝试打印雪花连接器查询的输出并将其写入 csv,但我在执行此操作时遇到了问题。目前,我的代码示例如下所示:

query = '''SELECT TOP 10 * FROM TABLE;'''

conn = snowflake.connector.connect(user='XXXX',
                                   password='XXXX',
                                   account='XXXX')

query_output = conn.cursor().execute(query)

有没有办法让我打印查询的输出,比如print(query_output),然后像query_output.to_csv(path)一样将其写入csv?

【问题讨论】:

  • 只是好奇,写完你要导入pandas吗?

标签: python sql csv snowflake-cloud-data-platform


【解决方案1】:

我强烈推荐使用Pandas' DataFrames API。在其他几个数据转换和分析功能中,它具有出色的 CSV 读取器和写入器实现,即very flexible

Snowflake 的 Python 连接器还 natively supports 将结果转换为 Pandas DataFrame 对象。

下面提供了一个非常简单的改编示例(添加了 1 行):

query = '''SELECT TOP 10 * FROM TABLE;'''

conn = snowflake.connector.connect(user='XXXX',
                                   password='XXXX',
                                   account='XXXX')

query_output = conn.cursor().execute(query)

## You may have to run: pip3 install --user pandas ##

query_output.fetch_pandas_all().to_csv("/path/to/write/table.csv")

默认的 CSV 格式使用 , 作为分隔符、特定于操作系统的换行符(\n 使用 \r\n 的 Windows 除外)和最少的引用(自动引用 VARCHAR 包含分隔符的列他们)。

【讨论】:

    【解决方案2】:
    You can do like below :
    ---------------------------------------------------------------
    
    import csv
    .....
    .....
    .....
    rows=cur.fetchall()
    column_names = [i[0] for i in cur.description]
    fp = open('samplefile.csv', 'w')
    myFile = csv.writer(fp, lineterminator = '\n')
    myFile.writerow(column_names)
    myFile.writerows(rows)
    fp.close()
    .....
    .....
    

    【讨论】:

      【解决方案3】:

      您可以使用它来打印结果。要将其保存在 csv 中,只需使用 for 循环将结果保存在数据框中,然后使用 df.to_csv

          cursor.execute(query)
          sql_result = cursor.fetchall()
          print(sql_result)     ## just print the results or use the for loop below to print the results row by row 
          for row in sql_result:
              print(row)
      

      【讨论】:

        猜你喜欢
        • 2021-07-22
        • 2019-06-18
        • 2022-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多