我正在尝试实现一个非常简单的单个 get 调用,并且响应返回一些带有一堆由换行符分隔的 id 的文本(如单个 column csv)。我想将每一个保存为数据集中的一行。
我知道通常 Rest 连接器将每个响应保存为avro文件中的新行,这对于 json 响应非常有效,然后可以在代码中进行解析。
但是在我的情况下,我需要它来将响应保存在一个txt或csv文件中,然后我可以应用一个模式,将每个 id 放在自己的行中。我怎样才能做到这一点?
我正在尝试实现一个非常简单的单个 get 调用,并且响应返回一些带有一堆由换行符分隔的 id 的文本(如单个 column csv)。我想将每一个保存为数据集中的一行。
我知道通常 Rest 连接器将每个响应保存为avro文件中的新行,这对于 json 响应非常有效,然后可以在代码中进行解析。
但是在我的情况下,我需要它来将响应保存在一个txt或csv文件中,然后我可以应用一个模式,将每个 id 放在自己的行中。我怎样才能做到这一点?
默认情况下,Data Connection Rest 连接器会将来自 API 的每个响应作为一行放置在输出数据集中。如果您知道响应的格式类型,并且通常将其解析为每个换行符一行(csv例如),您可以尝试将其设置outputFileType为正确的格式(默认情况下未定义)。
例如(有关更多详细信息,请参阅REST API Plugin文档):
type: rest-source-adapter2
outputFileType: csv
restCalls:
- type: magritte-rest-call
method: GET
path: '/my/endpoint/file.csv'
如果您不知道格式,或者无论如何上述方法都不起作用,则需要在转换中解析响应以将其拆分为单独的行,这可以像响应是字符串列一样完成,在此在换行符 ( ) 上拆分后爆炸的情况可能有用:\nF.explode(F.split(F.col("response"), r'\n'))