databricks使用restapi

u0njafvf  于 2021-05-27  发布在  Spark
关注(0)|答案(2)|浏览(588)

我对azuredatabricks和scala不太熟悉,我正在尝试使用返回json的httprestapi,我查看了databricks文档,但没有看到任何可以使用restapi的数据源。是否有关于如何在databricks中使用restapi的库或教程。如果我进行了多个api调用(分页的原因),那么最好以并行方式(spark方式)完成。
如果你们能告诉我是否有一个databricks或spark方法来使用restapi,我会很高兴,因为我对文档中没有关于api数据源的信息感到震惊。

ahy6op9u

ahy6op9u1#

这是一个 Simple 实施。
基本思想是 spark.read.json 我能读一本书 RDD .
所以,创建一个 RDDGET 调用,然后将其作为常规Dataframe读取。

%spark
def get(url: String) = scala.io.Source.fromURL(url).mkString

val myUrl = "https://<abc>/api/v1/<xyz>"

val result = get(myUrl)

val jsonResponseStrip = result.toString().stripLineEnd 

val jsonRdd = sc.parallelize(jsonResponseStrip :: Nil)

val jsonDf = spark.read.json(jsonRdd)

就这样。

hfyxw5xn

hfyxw5xn2#

在我看来,您想要的是导入scala库以进行http请求。我建议使用http而不是更高级别的rest接口,因为分页可能在rest库中处理,可能支持也可能不支持并行。通过使用较低级别的http进行管理,可以取消分页耦合。然后可以使用您选择的并行机制。
有许多图书馆,但推荐一个特定的是超出范围。
如果不想导入库,可以让scala笔记本调用另一个运行标准库中包含http的语言的笔记本。然后,这个笔记本会将数据返回到scala笔记本。

相关问题