Python 2.7 Google Cloud BigQuery导入在应用程序引擎项目中不起作用
我使用以下代码构建了一个应用引擎项目,将数据从google cloud bucket移动到bigquery表中Python 2.7 Google Cloud BigQuery导入在应用程序引擎项目中不起作用,python-2.7,google-app-engine,google-bigquery,python-import,Python 2.7,Google App Engine,Google Bigquery,Python Import,我使用以下代码构建了一个应用引擎项目,将数据从google cloud bucket移动到bigquery表中 import argparse import time import uuid from google.cloud import bigquery def load_data_from_gcs(dataset_name, table_name, source): bigquery_client = bigquery.Client() dataset = bigqu
import argparse
import time
import uuid
from google.cloud import bigquery
def load_data_from_gcs(dataset_name, table_name, source):
bigquery_client = bigquery.Client()
dataset = bigquery_client.dataset(dataset_name)
table = dataset.table(table_name)
job_name = str(uuid.uuid4())
job = bigquery_client.load_table_from_storage(
job_name, table, source)
job.begin()
wait_for_job(job)
print('Loaded {} rows into {}:{}.'.format(
job.output_rows, dataset_name, table_name))
def wait_for_job(job):
while True:
job.reload()
if job.state == 'DONE':
if job.error_result:
raise RuntimeError(job.error_result)
return
time.sleep(1)
if __name__ == '__main__':
parser = argparse.ArgumentParser(
description=__doc__,
formatter_class=argparse.RawDescriptionHelpFormatter)
parser.add_argument('dataset_name')
parser.add_argument('table_name')
parser.add_argument(
'source', help='The Google Cloud Storage object to load. Must be in '
'the format gs://bucket_name/object_name')
args = parser.parse_args()
load_data_from_gcs(
args.dataset_name,
args.table_name,
args.source)
我还将默认的app.yaml文件更改为上述文件,并删除了webapp2库条目,我的app.yaml文件如下所示
application: gcstobq
version: 1
runtime: python27
api_version: 1
threadsafe: yes
handlers:
- url: /favicon\.ico
static_files: favicon.ico
upload: favicon\.ico
- url: .*
script: main.app
由于我是python和app engine新手,我不知道是否需要将main.py文件中定义的库包含到app.yaml中,以及是否需要使用命令行工具运行此应用程序
请让我知道我是否遗漏了什么?谷歌云使用了新的Python名称空间格式(如果您查看源代码,您会注意到在目录结构中没有
\uuuu init\uuuuuuuuuuuy.py
)。这在Python3.3中用
幸运的是,在Python2.7中,您可以通过避免隐式导入轻松地解决这个问题。只需将其添加到文件的最顶端(在任何其他导入之前),即可获得Python 3的行为:
我还没有将应用程序上传到云端,但是当我在本地主机上运行应用程序时,我在日志文件中得到了以下信息,但是没有任何数据被发送到我的大查询表importorror:没有名为cloud的模块您安装了Google python libs吗?i、 pip安装——升级google cloud bigqueryI除了google cloud sdk和app engine之外,我还没有安装任何东西,你认为这个错误与这些丢失的库有关吗?我想是的。请尝试一下。我现在已经安装了google python库,但是当我运行该文件时,它给了我以下错误-来自google.cloud import bigquery importorror:没有名为cloud的模块