从 cron 作业运行 pandas.io.gbq
Posted
技术标签:
【中文标题】从 cron 作业运行 pandas.io.gbq【英文标题】:Running pandas.io.gbq from a cron job 【发布时间】:2017-03-07 11:16:55 【问题描述】:我已经编写了一个脚本来查询本地 API 和 Google BigQuery,我在其中使用 pandas.io.gbq 将查询传递给 BigQuery 并将它们返回给 pandas 数据帧。例如。
raw_page_id_date = gbq.read_gbq(query, project_id=project_id, dialect='standard')
gbq.to_gbq(raw_page_id_date, destination_table='ohalloranb.raw_page_id_date', project_id='tmg-data-science-dev', verbose=True, reauth=False, if_exists='replace', private_key=None)
当我从命令行运行该脚本时,它可以正常运行 - 它查询 API 和 BigQuery 并按预期转储输出。但是,当我尝试将其作为 cron 作业运行时,我遇到了问题。第一部分 - 查询本地 API 运行没有问题。但是,它在遇到 BigQuery 查询时崩溃了:
raw_page_id_date = gbq.read_gbq(query, project_id=project_id, dialect='standard')
TypeError: read_gbq() got an unexpected keyword argument 'dialect'
这是身份验证问题,还是其他问题?
【问题讨论】:
【参考方案1】:听起来 cron 作业使用的 pandas
版本与您在命令行中使用的版本不同。 read_gbq
的 dialect
选项是 added in version 0.19.0。您可能想尝试让您的 cron 作业打印版本号,并且 - 如果它小于 0.19.0 - 将作业更改为使用更新的版本。
【讨论】:
确实是问题所在:cron 在我的机器上使用的是 Python 的基本安装,而不是带有升级版 pandas 的版本。面对面的时刻,但现在一切正常。以上是关于从 cron 作业运行 pandas.io.gbq的主要内容,如果未能解决你的问题,请参考以下文章