值错误:调用Python请求时无法解包的太多值

时间:2020-10-04 07:23:02

标签: python apache-spark pyspark

我正在尝试使用Python请求发送put rest api,

def put(payload):
  url = "https://server"
  headers = {
    'Content-Type': 'application/json'}
  
  response = requests.put(url, headers=headers, data=payload) 
  return response.status_code

我的有效载荷是json字符串(通过在json对象上使用pyspark函数to_json),例如:

{"category":[{"coding":[{"code":"mycode"}]}],"code":{"coding":[{"code":"5","display":"test"}]}}

但是当我在map函数中调用它时,我收到一条错误消息PythonException:ValueError:太多的值无法在第16行(即requests.put)上解包

df.select("payload").rdd.map(lambda x: put(x)).collect()

我尝试使用json = payload,但是我从status_code收到了错误的请求。

有人可以告诉我什么地方可能出问题吗?

1 个答案:

答案 0 :(得分:1)

您忘了在lambda函数中解压值。这是正确的:

df.select("payload").rdd.map(lambda x: put(x[0])).collect()