gpt4 book ai didi

rest - 使用 Spark(Databricks) 的并行 REST API 请求

转载 作者:行者123 更新时间:2023-12-04 07:45:39 25 4
gpt4 key购买 nike

我想利用 Spark(它在 Databricks 上运行,我正在使用 PySpark)来向 REST API 发送并行请求。现在我可能面临两种情况:

  • REST API 1:返回 ~MB
  • 顺序的数据
  • REST API 2:返回 ~KB 顺序的数据。

  • 关于如何在节点之间分配请求的任何建议?
    谢谢!

    最佳答案

    只需创建一个带有 URL(如果您使用不同的 URL)和 API 参数(如果它们不是 URL 的一部分)的数据框 - 这可以通过 creating it explicitly 完成从列表等或通过从外部数据源读取数据,比如 JSON 文件或类似的东西(spark.read 函数)。
    然后你定义 user defined function它将执行对 REST API 的请求并将数据作为列返回。像这样的东西(未测试):

    import urllib
    df = spark.createDataFrame([("url1", "params1"), ("url2", "params2")], ("url", "params"))

    @udf("body string, status int")
    def do_request(url: str, params: str):
    with urllib.request.urlopen(url) as f:
    status = f.status
    body = f.read().decode("utf-8")

    return {'status': status, 'body': body}


    res = df.withColumn("result", do_requests(col("url"), col("params")))
    这将返回带有名为 result 的新列的数据框将有两个字段 - statusbody (JSON 答案)。您需要添加错误处理等。

    关于rest - 使用 Spark(Databricks) 的并行 REST API 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67204599/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com