解析日期在云函数中执行的创建作业中引发错误
Posted
技术标签:
【中文标题】解析日期在云函数中执行的创建作业中引发错误【英文标题】:parse date throws an error inside create job executed in cloud functions 【发布时间】:2019-02-02 06:25:27 【问题描述】:我在 sql 语句中的 order by 子句中有一个解析日期,用于由云函数执行的 bigquery createjob api,它会引发错误。
在 bigquery 查询编辑器控制台中执行相同的 sql 语句没有任何问题
sqlQuery="select * from <<datasetid>>.<<table_name>> where arrival_date not like '%Z%' order by parse_date('%d/%m/%Y',arrival_date)" ;
const options =
configuration:
query:
query: sqlQuery
;
bigquery.createJob(options, function (err, job)
if (err)
console.log(err);
return res.status(500);
job.getQueryResults(function (err, rows)
return res.status(200).send(rows);
);
);
【问题讨论】:
我在上面列出的代码中有一个小的更正.. 上面的代码中缺少查询字符串的引号,但在云函数中我确实有引号.. 我已经复制了下面的确切错误消息:TypeError: stream.destroy is not a function at onResultSet (/user_code/node_modules/@google-cloud/bigquery/node_modules/@google-cloud/paginator/ build/src/index.js:242:24) 在 bigQuery.request (/user_code/node_modules/@google-cloud/bigquery/build/src/job.js:385:17) 在 request_.then.err (/user_code /node_modules/@google-cloud/bigquery/node_modules/@google-cloud/common/build/src/service.js:167:82) 在 process._tickDomainCallback (internal/process/next_tick.js:135:7)跨度> 【参考方案1】:尝试替换这个:
sqlQuery=select * from <<datasetid>>.<<table_name>> where arrival_date not like '%Z%' order by parse_date('%d/%m/%Y',arrival_date)
有了这个:
sqlQuery="select * from <<datasetid>>.<<table_name>> where arrival_date not like '%Z%' order by parse_date('%d/%m/%Y',arrival_date)"
下次:请复制粘贴您得到的确切错误代码。
【讨论】:
我在上面列出的代码中有一个小的更正.. 上面的代码中缺少查询字符串的引号,但在云函数中我确实有引号.. 我添加了上述 cmets 中的确切错误以上是关于解析日期在云函数中执行的创建作业中引发错误的主要内容,如果未能解决你的问题,请参考以下文章