我正在尝试使用 Azure 数据工厂查询开源 Yahoo Finance API。
我有一个数据集,其设置如下:
我在数据流中调用此 API。使用上述数据集的数据流的第二行有效。设置如下:
我的展平活动返回数据如下:
但是,我希望
period1
和 period2
查询参数是动态的。我有一个包含历史数据的数据集,我想从历史数据的最新日期到现在之间获取数据。这是我的数据流中的第一行出现的地方,但这不起作用。
我发现数据流中的第二行一次只能处理大约 5 天,因此我提取了历史数据并使用数据流中的前 3 个活动计算了开始和结束时间戳。 UNIX 开始时间戳的计算方式为:
toString(toLong(addDays(MAX_DATE, 1) - toTimestamp('1970-01-01 00:00:00.000', 'yyyy-MM-dd HH:mm:ss.SSS')) / 1000l)
UNIX 结束时间戳的计算方式为:
toString(toLong(addDays(MAX_DATE, 6) - toTimestamp('1970-01-01 00:00:00.000', 'yyyy-MM-dd HH:mm:ss.SSS')) / 1000l)
我得到了这个结果:
(P.S. 我不确定为什么时间戳会以这种格式显示并带有
E
?这是一个问题吗?)
从这里开始,我尝试使用外部调用活动将 startTimestamp 和 endTimestamp 作为查询参数传递,但我在第一个障碍处就失败了:
我不确定为什么连接失败,尽管使用与工作数据集相同的设置,并且我不确定为什么我收到
Column not found
错误,尽管使用与第二行相同的设置数据流。 当我尝试预览数据时,出现以下错误:
Spark 作业失败:{ "text/plain": "{"runId":"a8c1da6c-241b-4b90-891d-3d9bba2ec317","sessionId":"b66a1630-0795-4214-894a-2f333d98b891","status":"失败","有效负载":{"statusCode":400,"shortMessage":"调用 'ImportYahooFinanceData' 时的 DF-EXPR-010(第 31 行/第 24 列):表达式中使用的列 'interval' 不可用或无效。","detailedMessage": “失败 2024-11-04 13:04:28.500 失败 DebugManager.processJob,run=a8c1da6c-241b-4b90-891d-3d9bba2ec317,errorMessage=DF-EXPR-010 在调用“ImportYahooFinanceData”(第 31 行/第 24 列):列表达式中使用的“间隔”不可用或无效。"}} ” - 运行 ID:a8c1da6c-241b-4b90-891d-3d9bba2ec317
任何有关此错误的帮助都将不胜感激!
解决此错误后,如何将开始和结束时间戳作为查询参数传递给外部调用活动?
谢谢!
我不确定为什么时间戳会以带有
的格式显示?这是一个问题吗?E
显示的值是该数字的科学值,要将其转换为正确的格式,您可以在派生列中使用
todecimal()
函数,如下所示:
输出:
表达式中使用的列“间隔”不可用或无效。
您收到上述错误是因为您引用的列不存在,或者列名称不正确。
query
参数可用于在 URL 中传递查询字符串参数以进行 REST API 调用。
带有查询参数的示例 URL:
https://api.example.com/data?param1=value_from_pipeline_param¶m2=value2
检查您使用的 URL 是否正确或格式正确,并检查它是否在浏览器或邮递员上正常工作