当前位置: 代码迷 >> python >> U-SQL +熊猫Merge_asof
  详细解决方案

U-SQL +熊猫Merge_asof

热度:40   发布时间:2023-06-19 09:30:20.0

我第一次使用Azure Data Lake Analytics,并且不确定如何像使用python中的熊猫那样合并2个数据集。

我正在合并两个具有不同时间戳的数据集,但是如果它们在特定时间范围内,则需要将它们对齐。 这在python中很简单。

示例python代码: pandas.merge_asof(trades, quotes, on='time', by='ticker', tolerance=pd.Timedelta('2ms'))

完整的示例可以在这里找到:

看来我可以在脚本中使用python了,但是我不确定如何将两个数据集放入python函数中进行合并。

有几种方法可以做到这一点。 使用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;
  相关解决方案