带有请求参数的Spark Read JSON

星火0i

我正在尝试从IBM Cloud的DB2 Warehouse文档中读取JSON响应这要求我传递一个请求正文,其中我必须提供useridpassword作为请求参数。

要阅读使用spark.read.json,我没有发现可以提供请求参数的任何内容。无论如何,有什么可以使用的呢?

通常我会单独使用Scalascalaj-httpplay-json像这样的库来读取JSON

val body = Json.obj(Constants.KEY_USERID -> userid, Constants.KEY_PASSWORD -> password)

val response = Json.parse(Http(url + Constants.KEY_ENDPOINT_AUTH_TOKENS)
    .header(Constants.KEY_CONTENT_TYPE , "application/json") 
    .header(Constants.KEY_ACCEPT , "application/json")   
    .postData(body.toString())  
    .asString.body)  

我的要求是我不能使用这两个库,而必须scalaspark框架一起使用。

黑主教

您不能spark.read.json直接用于REST API数据提取。

首先,发出API调用请求以获取响应数据,然后使用Spark将其转换为DataFrame。请注意,如果您的API是分页的,则需要进行多次调用才能获取所有数据。

对于您的示例,您需要调用身份验证终结点才能获取Bearer token,然后将其添加到请求标头中:

Authorization: Bearer <your_token>

所有这部分都可以仅使用Scala(例如scala.io.Source.fromURL)完成。

一旦获得response_data,请使用spark将其转换为DF:

import spark.implicits._
val df = spark.read.json(Seq(response_data).toDS)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用JSON发布请求后没有请求参数

Web抓取带有请求的JSON文件

发送带有请求的json以在节点中表达

Python:删除带有请求和JSON的函数

带有请求-json的多个获取请求无法在节点js中使用异步正确执行

带有json参数的Angular HTTP请求

Jmeter JSON响应转换为带有请求修改的数组

从Mediainfo AWS Lambda发送带有请求的json时发生属性错误

Curl-使用带有查询参数的JSON的POST请求

使用带有参数的POST请求获取JSON结果

带有嵌套JSON参数的Alamofire发布请求

我正在尝试发送带有json参数的请求

带有发布请求和参数作为JSON对象的HttpUrlConnection?

发送带有数据和JSON参数的发布请求

pandas read_table 给出带有 JSON 数据的单列

带有熊猫read_json的列dtype

Laravel 5.4带有请求和参数的路由

带有请求参数的AWS Custom Authorizer

带有日期时间索引的熊猫 to_json 和 read_json

AttributeError: 模块“_json”没有属性“read_json”

带有参数的熊猫read_sql

诊断带有请求的挂起请求

Python请求库:数据与带有requests.post的json命名参数

使用 Spring Boot 在带有 JSON 正文的 POST 请求中接收空参数

如何为带有和不带有请求参数的请求定义不同的 Spring MVC 请求处理程序?

如何使用cURL发送带有请求参数的POST请求?

Django Rest Framework中带有请求参数的GET请求

带有请求的grequest有冲突

为什么我的带有json参数和标头的HTTP POST请求返回400错误请求?