我是第一次使用 Azure Data Lake Analytics,我不确定如何像在 python 中使用 pandas 那样合并 2 个数据集。
我正在合并两个具有不同时间戳的数据集,但如果它们在特定时间跨度内,我需要将它们排列起来。这在 Python 中很简单。
示例 python 代码:pandas.merge_asof(trades, quotes, on='time', by='ticker', tolerance=pd.Timedelta('2ms'))
完整示例可在此处找到:click here
似乎我可以在我的脚本中使用 python,但是,我不确定如何将两个数据集放入 python 函数中以执行此合并。
最佳答案
有几种方法可以做到这一点。使用 Python,您可以使用 Python reducer从 U-SQL 到 Python。要在 ADL 中本地运行 Python,您需要执行一些操作 additional steps .
但是我建议在 U-SQL 中执行此操作。一个快速的方法是创建一个 rounded DateTime column然后对其进行内部连接:
@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;
关于python - U-SQL + Pandas Merge_asof,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52377621/