为数据帧(scala)中的每一行执行API调用
我使用scala和spark, 并尝试为Dataframe中的每一行执行post请求,并解析来自API的响应。 DF中的一列是每行的主体。(co1,col2,col3..,阀体)。 执行以下命令是否正确:为数据帧(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。这取
val responses = df.map(r=> executePost(r))
在这种情况下,spark会自动并行执行器之间的调用吗
- executePost—生成http post,并解析对case类的响应
谢谢 是,spark将并行调用,每个执行器将同时调用您的API。这取决于您在
executePost
中的处理方式。如果是同步调用(等待响应),那么它将按预期执行。但是它是异步的,然后你会得到意想不到的结果。嗨,是的,executePost是同步的。有一点奇怪,当我查看每个执行器的日志时,我可以看到一些请求(不是全部)在每个执行器上执行了1次(总共3次而不是1次)。您能检查一下df上是否有重复的请求吗?在map
的情况下,一行肯定只执行一次。