我是Google API的新手,我正在尝试连接我的网站,该网站位于另一台谷歌云服务器上,在Django上运行到我的Google DataProc群集。到目前为止所有的错误。这是我的代码:
<script src="https://apis.google.com/js/api.js"></script>
<script>
var parameters={
"projectId": "product-994",
"job": {
"placement": {
"clusterName": "cluster-s1"
},
"reference": {
"jobId": "7d77a545-b523-4694-b971-3d17dc0ae4f1"
},
"pysparkJob": {
"mainPythonFileUri": "gs://my-directory/list-tables.py"
}}};
function start() {
gapi.client.init({
'apiKey': 'my_api_key',
'clientId':'myIDohmemne7hanb2d8.apps.googleusercontent.com',
'scope':['https://www.googleapis.com/auth/cloud-platform'],
}).then(function() {
return gapi.client.request({
'path':'https://dataproc.googleapis.com/v1beta2/projects/produc-994/regions/global/jobs:submit/',
'method':'POST',
'body':parameters,
})
}).then(function(response) {
console.log(response.result);
alert(response.result);
}, function(reason) {
console.log('Error: ' + reason.result.error.message);
});
};
gapi.load('client', start);
</script>
但是我收到了这个错误:
Uncaught TypeError: a.split is not a function
at pZ (https://apis.google.com/_/scs/apps-static/_/js/k=oz.gapi.es.v_tOK2w_1HY.O/m…1/ed=1/am=AQ/rs=AGLTcCM1W2y9cMgCwSVCS8oWU4_pdItscw/cb=gapi.loaded_1:87:396)
到目前为止,我已经使用过:https://developers.google.com/api-client-library/javascript/reference/referencedocs; https://cloud.google.com/dataproc/docs/quickstarts/quickstart-explorer-submit; https://developers.google.com/api-client-library/javascript/start/start-js; https://developers.google.com/analytics/devguides/reporting/core/v3/quickstart/web-js?hl=fr。但是,这不起作用
答案 0 :(得分:0)
我建议您首先通过Google云控制台验证您的基本流程,使用官方用户界面向您的群集提交作业。在“作业提交”页面上,左下角附近有一个“等效REST”链接;如果单击它,它将弹出您需要发布的低级HTTP路径,方法和正文,以确保您具有正确的语法。
在尝试从javascript提交作业之前,您还应该逐步开始获取更简单的内容,例如“list”调用。
此外,您似乎发布到“v1beta2”,您应该发布到“/ v1 /”;我很好奇你在哪里找到了“v1beta2”的引用(如果有的话),因为那个版本很可能会被打破,并且不应该真的被广告用于非测试用途。
您的示例代码中也有一个拼写错误/projects/produc-994
而不是product-994
,但这可能只是翻译成SO问题的错字。