我正在调用一个API,它用两个键:值对。我目前通过两次不同的点击API并使用withColumn来保存对数据帧的响应键:值对而不是只访问一次API并同时保存两个键:值对马上。有人对如何正确地做这件事有指导吗?在
我的数据帧是一列,其中包含我发送给API的值:
businessId
dksldfaw2
kkldsdok3
djdfkdfk3
23lksdlk8
JSON响应:
^{pr2}$我的代码(调用API两次以解析一个响应):
def FirstVariableCode(businessId):
response = api.query(id=businessId)
x = response['FirstVariable'].encode('utf-8').strip()
return x
def SecondVariableCode(businessId):
response = api.query(id=businessId)
y = response['SecondVariable'].encode('utf-8').strip()
return y
FirstVariableCode = udf(FirstVariableCode, StringType())
SecondVariableCode = udf(SecondVariableCode, StringType())
df.withColumn('FirstVariable', FirstVariableCode(df.businessId))
df.withColumn('SecondVariable', SecondVariableCode(df.businessId))
我怎样才能点击一次API并将这两个值正确地保存到各自的列中呢?我觉得我把“withColumn”当作拐杖,做得不好。在
谢谢
您可以将两个
udf
函数组合为一个然后调用
^{pr2}$udf
函数一次,然后使用*
将通过调用udf函数创建的struct列扩展到单独的列中,如下所示:这应该给你
dataframe
如下所示我希望答案是有帮助的
注意:尽量使用内置函数,而不是udf函数
相关问题 更多 >
编程相关推荐