Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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
为数据帧(scala)中的每一行执行API调用_Scala_Apache Spark - Fatal编程技术网

为数据帧(scala)中的每一行执行API调用

为数据帧(scala)中的每一行执行API调用,scala,apache-spark,Scala,Apache Spark,我使用scala和spark, 并尝试为Dataframe中的每一行执行post请求,并解析来自API的响应。 DF中的一列是每行的主体。(co1,col2,col3..,阀体)。 执行以下命令是否正确: val responses = df.map(r=> executePost(r)) 在这种情况下,spark会自动并行执行器之间的调用吗 executePost—生成http post,并解析对case类的响应 谢谢 是,spark将并行调用,每个执行器将同时调用您的API。这取

我使用scala和spark, 并尝试为Dataframe中的每一行执行post请求,并解析来自API的响应。 DF中的一列是每行的主体。(co1,col2,col3..,阀体)。 执行以下命令是否正确:

val responses = df.map(r=> executePost(r))
在这种情况下,spark会自动并行执行器之间的调用吗

  • executePost—生成http post,并解析对case类的响应

谢谢

是,spark将并行调用,每个执行器将同时调用您的API。

这取决于您在
executePost
中的处理方式。如果是同步调用(等待响应),那么它将按预期执行。但是它是异步的,然后你会得到意想不到的结果。嗨,是的,executePost是同步的。有一点奇怪,当我查看每个执行器的日志时,我可以看到一些请求(不是全部)在每个执行器上执行了1次(总共3次而不是1次)。您能检查一下df上是否有重复的请求吗?在
map
的情况下,一行肯定只执行一次。