使用gcs和bigquery的包

moovai的Python项目详细描述


Moovai工具箱

此存储库包含可重用代码以加快开发。 要使用Repository,请确保使用的是Python3.6。

安装:

要使用此软件包,请使用pip安装:

pipinstallmoovai

谷歌云:

此文件夹包含处理gcp资源的代码。 在使用这里的方法之前,您需要通过gcp的身份验证。 如果您使用的是服务帐户,并且有密钥json文件:

  • 在Linux或MacOS上
exportGOOGLE_APPLICATION_CREDENTIALS="[PATH]"
  • 在Windows上:
setGOOGLE_APPLICATION_CREDENTIALS=[PATH]

云存储

在使用这里的代码之前,首先确保你在地面军事系统上有一个桶。如果没有,就创建一个。

上传至地面军事系统:

将本地文件上载到Google云存储上的文件夹。然后在本地删除该文件。

参数:
  • 文件:必需:[string]要上载到Google云存储的本地文件路径。
  • bucket_name:必选:[string]存储桶的名称。
  • 文件夹:必选:[string]要在GCS上上载文件的文件夹路径。

返回:上传文件的gcs uri

示例用法:
frommoovai.google_cloudimportcloud_storagefile="/path/to/my/file.txt"bucket_name="my_bucket"folder="Folder/Subfolder/"cloud_storage.upload_to_gcs(file,bucket_name,folder)# returns "gs://my_bucket/Folder/Subfolder/file.txt"
下载文件

将文件从google云存储下载到本地磁盘。

参数:
  • gcs_uri:必需。[字符串]要下载的位于谷歌云存储上的文件的uri

返回:无。GCS文件在本地下载。

示例用法:
frommoovai.google_cloudimportcloud_storagegcs_uri="gs://my_bucket/Folder/Subfolder/my_file.txt"cloud_storage.download_file_gcs(gcs_uri)# file "my_file.txt" downloaded locally

大查询

从json获取模式:

获取schema.json文件并将其转换为与bigquery兼容的架构文件。

参数:
  • 架构路径:必需。[string]指向schema.json文件的路径。

返回:要插入bigquery上载作业的架构。

示例用法:
frommoovai.google_cloudimportbigqueryschema_file="/path/to/my/schema.json"bigquery.get_schema_from_json(schema_file)
从csv获取模式

获取包含数据的csv文件并从文件中提取架构。 建议只使用bigquery的自动检测模式功能。作为最后手段。

参数:
  • csv_文件路径:必需。[字符串]csv文件的路径。

返回:要插入bigquery上载作业的架构。

示例用法:
frommoovai.google_cloudimportbigquerycsv_file="/path/to/my/file.csv"bigquery.get_schema_from_csv(csv_file)
将本地文件上载到bq:

将本地文件上载到bigquery。架构路径和架构是可选参数。它们是相互排斥的,如果你想的话只提供一个。

参数:
  • 文件:必需。[字符串]要上载的本地csv文件的路径
  • 数据集ID:必需。[字符串]bigquery数据集的名称。
  • 表ID:必需。[字符串]要查询的bigquery表的名称。
  • 架构路径:可选。[字符串]schema.json文件的路径。
  • 架构:可选。[string]架构与bigquery兼容。
  • 覆盖:可选。[bool]默认为false。如果设置为true,bigquery将覆盖表,否则将向表追加新数据。

返回:无。

示例用法:
frommoovai.google_cloudimportbigqueryfile="/path/to/my_file.csv"dataset_id="my_dataset_id"table_id="my_table_id"bigquery.upload_local_file_to_bq(file,dataset_id,table_id)
将“gcs”文件上载到“bq:

将文件从云存储上载到bigquery。架构路径和架构是可选参数。它们是相互排斥的,如果你想的话只提供一个。

参数:
  • gcs_uri:必需。[string]要上载到bigquery的云存储上的csv文件的路径。
  • 数据集ID:必需。[字符串]bigquery数据集的名称。
  • 表ID:必需。[字符串]要查询的bigquery表的名称。
  • 架构路径:可选。[字符串]schema.json文件的路径。
  • 架构:可选。[string]架构与bigquery兼容。
  • 覆盖:可选。[bool]默认为false。如果设置为true,bigquery将覆盖表,否则将向表追加新数据。

返回:无。

示例用法:
frommoovai.google_cloudimportbigquerygcs_uri="gs://my_bucket/Path/To/my_file.csv"dataset_id="my_dataset_id"table_id="my_table_id"bigquery.upload_local_file_to_bq(gcs_uri,dataset_id,table_id)
生成SQL查询:

生成用于查询bigquery表的sql查询字符串。

参数:
  • 项目:必需。[字符串]项目ID
  • 数据集ID:必需。[字符串]bigquery数据集的名称。
  • 表ID:必需。[字符串]要查询的bigquery表的名称。
  • 列:可选。[数组]要选择的列名列表。
  • 条件:可选。[数组]要满足的条件列表。

返回:字符串。标准SQL查询字符串。

示例用法:
frommoovai.google_cloudimportbigqueryproject="my_project_id"dataset_id="my_dataset_id"table_id="my_table_id"bigquery.generate_sql_query(project,dataset_id,table_id)#returns "SELECT * FROM `project.dataset_id.table_id`" (return everything from table)columns=["col1","col2"]conditions=["Date >= TIMESTAMP('2019-05-01')","col3 < 3"]bigquery.generate_sql_query(project,dataset_id,table_id,columns=columns,conditions=conditions)#returns "SELECT col1, col2 FROM `project.dataset_id.table_id` WHERE Date >= TIMESTAMP('2019-05-01') AND col3 < 3" (returns col1 and col2 that meet the specified conditions)
从bq获取数据:

接受一个sql查询字符串(标准sql)并返回pandas数据框

参数:
  • SQL_查询:必需。[字符串]表示要进行的查询的字符串。

返回:包含查询结果的pandas数据框。

示例用法:
frommoovai.google_cloudimportbigquerysql_query="SELECT * FROM `my_project.my_dataset.my_table`"bigquery.get_data_from_bq(sql_query)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将多个线程中的函数放入单个队列   数组在Java中,如何在不改变整数顺序的情况下找到整数组的顺序?   java控制器属于表示层?   java Apache Ivy和本地Maven repo如何处理使用Maven 3构建的快照   Java可与泛型类型进行比较   java这个表达式在泛型中是什么意思   JavaEclipse和TeamCity插件   java检测构造函数中的final是否为空   java如何在StanfordCoreNLP管道中同时使用词汇化和依赖性解析器?   java在AntUnit控制台日志中显示完整异常堆栈跟踪   lambda如何与Java 8供应商建立连锁关系   如何让GRPC的重试机制在Kubernetes集群中使用grpcjava工作?   如何使用openjdk:7 Docker映像和Gradle包装器避免“EC参数错误”?   java将集合映射扩展为一维映射新的“无法推断函数接口类型”