Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node JS与spark作业服务器的集成_Javascript_Python_Node.js_Apache Spark_Spark Jobserver - Fatal编程技术网

Javascript Node JS与spark作业服务器的集成

Javascript Node JS与spark作业服务器的集成,javascript,python,node.js,apache-spark,spark-jobserver,Javascript,Python,Node.js,Apache Spark,Spark Jobserver,我正在尝试从节点js调用spark作业服务器API。作为pythonegg文件的API确实提供了该文件中的空值计数。因此,一旦我从节点调用API,它就会到达SJS服务器,作业开始触发res.on('data')事件,之后不久,它也会在作业完成执行并返回结果之前触发res.on('end')。因此,由于这个原因,我无法在作业完成后获取数据 下面是代码片段,请让我知道这里的错误是什么 var postData = { 'input': {

我正在尝试从节点js调用spark作业服务器API。作为pythonegg文件的API确实提供了该文件中的空值计数。因此,一旦我从节点调用API,它就会到达SJS服务器,作业开始触发res.on('data')事件,之后不久,它也会在作业完成执行并返回结果之前触发res.on('end')。因此,由于这个原因,我无法在作业完成后获取数据

下面是代码片段,请让我知道这里的错误是什么

        var postData = {
                'input': {
                    'strings': {
                        'file': 'file path to be passed'
                    }
                }
        };

        var options = {
            hostname: 'localhost',
            port: 8090,
            path: '/jobs?appName=my_ml_job&classPath=my_py_package.NullCheck.nullcheck&context=py-context',
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'Content-Length': Buffer.byteLength(JSON.stringify(postData))
            }
        };

        var post_req = Http.request(options, function(res) {
            res.setEncoding('utf8');
            res.on('data', function (chunk) {
                console.log('Response: ' + chunk);
            });

            res.on('end', () => {
                return{
                    'STATUS': 'FINISHED'
                }                   
            });
        });

        post_req.on('error', e => {
            rj(e);
        });

        // post the data
        post_req.write(postData);
        post_req.end();

postData是一个对象,您应该将其转换为JSON字符串first@generalhenry产品代码中已经注意到了这一点,忘记在这里添加了。谢谢,我现在已经更新了。现在,我可以通过使用jobId轮询SJS来解决这个问题,并且在作业“完成”后,SJS将获取一次数据。