当前位置: 首页 > 知识库问答 >
问题:

向Google云存储或BigQuery编写一个Pandas DataFrame

汪翰墨
2023-03-14

您好,感谢您的时间和考虑。我正在谷歌云平台/DataLab中开发一个Jupyter笔记本。我已经创建了一个Pandas DataFrame,并希望将此DataFrame写到Google Cloud Storage(GCS)和/或BigQuery中。我在GCS中有一个bucket,并通过以下代码创建了以下对象:

import gcp
import gcp.storage as storage
project = gcp.Context.default().project_id    
bucket_name = 'steve-temp'           
bucket_path  = bucket_name   
bucket = storage.Bucket(bucket_path)
bucket.exists()  

我尝试了基于Google Datalab文档的各种方法,但仍然失败。谢谢

共有1个答案

辛承志
2023-03-14
from google.cloud import storage
import os
import pandas as pd

# Only need this if you're running this code locally.
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = r'/your_GCP_creds/credentials.json'

df = pd.DataFrame(data=[{1,2,3},{4,5,6}],columns=['a','b','c'])

client = storage.Client()
bucket = client.get_bucket('my-bucket-name')
    
bucket.blob('upload_test/test.csv').upload_from_string(df.to_csv(), 'text/csv')
 类似资料:
  • 我试图将一个用编写的函数迁移到 实时解压缩并逐行读取 对每一行执行一些光转换 将未压缩的输出(一次一行或块)写入GCS 输出是>2GB,但略小于3GB,所以它适合。 null AFAIC,我将坚持,因为输出可以放入内存--就目前而言--但是多部分上传是以最少的内存支持任何输出大小的方法。 想法还是替代方案?

  • null 备选方案2比备选方案1耗时更长(使用和):

  • 我需要从Google Cloud Storage(GCS->Temp Table->Main table)中加载100个表到BigQuery。我创建了一个python进程,将数据加载到BigQuery中,并在AppEngine中进行调度。因为AppEngine最多有10min的超时时间。我已经在异步模式下提交了作业,并在稍后的时间点检查了作业状态。由于我有100个表,需要创建一个监控系统来检查作业

  • 我正试图从控制台/命令行将一个表从big query导出到google cloud storage。控制台作业运行了几分钟,并在没有任何错误代码的情况下出错,命令行作业在运行一段时间后也会出现以下错误: 提取操作中的BigQuery错误:错误处理作业“数据流-实验:BQJOB_R308FF0F73D1820A6_00000157F77E8AB9_1”:后端错误。作业中止。 上面给出了命令行的作业i

  • 我正在将数据从BigQuery读入dataproc spark集群。如果在我的例子中BigQuery表中的数据最初是从GCS加载的,那么如果BigQuery connector for dataproc(newAPIHadoopRDD)首先将数据下载到Google云存储桶中,那么直接从GCS读取数据是否更好?这两种方法有什么利弊吗?

  • 我的目标是使用BigQuery web界面将我的所有(GCS创建的)日志从Google Cloud Storage中获取到BigQuery中。由于日志每小时创建一次,所以我喜欢一次导入所有日志来进行分析。 因此,例如gs://logging-bucket/images.mysite.net_storage_2013_03_31_07_00_00_0001a_v0、gs://logging-buck