【发布时间】:2020-03-26 18:40:07
【问题描述】:
我正在尝试读取来自 IBM Cloud's DB2 Warehouse documentation 的 JSON 响应。这需要我传递一个请求正文,其中我必须提供 userid 和 password 作为请求参数。
要使用spark.read.json 阅读,我没有找到可以提供请求参数的任何内容。无论如何我们可以使用它来做到这一点吗?
通常我会单独使用 Scala 读取 JSON,使用 scalaj-http 和 play-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)
我的要求是我不能使用这两个库,必须使用 scala 和 spark 框架。
【问题讨论】:
-
尝试查看用于 DB2 developer.ibm.com/hadoop/2017/05/20/… 的 jdbc 连接器。它允许通过选项传递用户名和密码。
-
我不希望通过 JDBC 进行连接。我的用例要求我使用 REST API 和由此产生的身份验证令牌。要传递凭据,我需要将它们作为标头发送(就像使用
POST请求时通常那样)但我做到了在 Internet 上找不到任何有助于在调用spark.read.json时传递标头的资源
标签: json scala apache-spark apache-spark-sql