Google could避坑记录

  1. 不同Region的存储桶(gcs)和bigquery之间写入数据会报错,所以创建存储桶时要指定区域,以保证和读写数据的bigquery表在同一Region,通过控制台创建存储桶时可指定参数-l:

    gsutil mb -p PROJECT_ID -c STORAGE_CLASS -l BUCKET_LOCATION -b on gs://BUCKET_NAME
    
    -p:指定将与您的存储桶相关联的项目 ID 或项目编号,例如 my-project。
    -c:指定存储桶的默认存储类别,例如 NEARLINE。
    -l:指定存储桶的位置,例如 US-EAST1。
    -b:指定存储桶的统一存储桶级访问权限设置。例如 ON。
    

    官方文档:创建存储桶

  2. 用dataproc中的batches模块,通过pyspark连接bigquery,向bigquery中写入数据时,有两种写入方式:

    1. 一种是直接写入,添加option(“writeMethod”, “direct”)参数
    df.write.format("bigquery").option("writeMethod", "direct").save("dataset.table")
    
    1. 另一种是间接写入,先将数据写入到gcs中,再由gcs写入bigquery,
    df.write.format("bigquery").option("temporaryGcsBucket","BUCKET_NAME").save("dataset.table")
    

    参考链接

你可能感兴趣的:(技术杂谈,python)