问题描述
我第一次使用Azure Data Lake Analytics,并且不确定如何像使用python中的熊猫那样合并2个数据集。
我正在合并两个具有不同时间戳的数据集,但是如果它们在特定时间范围内,则需要将它们对齐。 这在python中很简单。
示例python代码: pandas.merge_asof(trades, quotes, on='time', by='ticker', tolerance=pd.Timedelta('2ms'))
完整的示例可以在这里找到:
看来我可以在脚本中使用python了,但是我不确定如何将两个数据集放入python函数中进行合并。
1楼
有几种方法可以做到这一点。 使用Python,您可以使用从U-SQL转换为Python。 要在ADL中本地运行Python,您需要执行一些 。
但是我建议在U-SQL中执行此操作。 一种快速的方法是创建一个 ,然后对其进行内部联接:
@trades =
SELECT *,
// round up to nearest 2ms:
new DateTime((time.Ticks + TimeSpan.FromMilliseconds(2).Ticks - 1) / TimeSpan.FromMilliseconds(2).Ticks * TimeSpan.FromMilliseconds(2).Ticks, time.Kind) AS RoundedTimeA
FROM @trades;
@quotes =
SELECT *,
// round up to nearest 2ms:
new DateTime((time.Ticks + TimeSpan.FromMilliseconds(2).Ticks - 1) / TimeSpan.FromMilliseconds(2).Ticks * TimeSpan.FromMilliseconds(2).Ticks, time.Kind) AS RoundedTimeB
FROM @quotes;
@result =
SELECT *
FROM @trades AS A INNER JOIN @quotes AS B ON
A.RoundedTimeA == B.RoundedTimeB;