python - U-SQL + Pandas Merge_asof

标签 python pandas azure-data-lake u-sql

我是第一次使用 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/

相关文章:

dataframe - Azure Blob 存储 - 如何读取源字符串 : wasbs://training@dbtrainsouthcentralus. blob.core.windows.net

azure - 无法在 Azure 数据工厂的数据集中看到列标题

python - 如何在flask python中将blob转换为byteArray?

python - 通过 Python 请求重用 Django 中的连接

python - pandas 在 DatetimeIndex 转换时引发 ValueError

python - 使用 Pandas 读取 JSON 时出现“预期的字符串或 Unicode”

python - Python Pandas 中 DataFrame 中的多索引的难题?

python - Scapy - 持久的 RandIP

python - 如何将不同值的行连接成新列的单行?

c# - 将 C# 应用程序连接到 Azure Databricks