azure - 在数据工厂中筛选多列上的行

标签 azure filter dataset azure-data-factory

我最近开始研究 Microsoft Azure,更准确地说是数据工厂。 我想在 Azure ML 中处理数据集之前先清理数据集,因此我使用数据流创建了一些步骤来执行此操作。但是,我不知道如何使用多个列,让我解释一下。

假设我有一个包含 15 个特征(列)的数据集,我想过滤每个特征的异常值,假设我有大约 500k 行。换句话说,在我的第一列中可能有 15 个异常值,在我的第二列中可能有 5 个,在第三列中可能有 5 个,比如说 10 个等等......但这些值彼此位于不同的行上。

我想要做的是过滤掉高于或低于阈值的所有值,并且我想对所有列而不是一次一列执行此操作。因为现在我可以做到这一点,但我必须为每一列创建一个过滤器 block ,所以这里将有 20 个过滤器 block 。 我很确定有一种方法可以做到这一点,但我就是找不到方法。

我非常感谢任何帮助,如果您有任何问题或不清楚的事情,请告诉我,我会在这里回答。

预先感谢您的帮助!

最佳答案

更新:

如果其中的列不满足,则会删除整行。
我想我们可以采取更简单的方法。
在过滤器事件中使用表达式:
column1>30 && column1<100 && column2>35 && column2<95 && column3>40 && column3<90

enter image description here

<小时/>

我想出了一个相对方便的方法,我们需要使用两个 Lookup 事件和两个 Filter 事件来过滤多列。
这里我将过滤3列,其中列中的数字大于30小于100。

  1. 这是源中的数据预览, enter image description here

  2. minValueSource ,我将最小值存储在 Azure datalake gen2 的 csv 中。 maxValueSourceminValueSource 相同.
    enter image description here

  3. 然后我设置了 Lookup1 事件。对于您的情况,您需要在此处设置 25 列。 enter image description here

  4. 然后我们需要设置Optmize Lookup1 事件中的选项卡。 enter image description here

  5. 数据预览是这样的,会有null如果其中一列包含的值小于 30。 enter image description here

  6. 在 Filter1 事件中,我们可以使用表达式 !isNull(minValue)过滤小于 30 的值。 enter image description here

  7. Lookup2 和 Filter2 事件的设置相同。这里我就不展示了。 enter image description here

  8. 在接收器中,我们可以设置映射选项卡来选择我们需要的列。 enter image description here

我认为这比设置 20 个或更多过滤器 block 更容易。

关于azure - 在数据工厂中筛选多列上的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64767235/

相关文章:

node.js - Nodemailer 在 Azure 上抛出错误

ios - 两次后 GPUImageView 停止响应 "Filter Change"

javascript - 如何在 JavaScript 中使用索引过滤数组数组?

c# - 数据集/内存不足的替换

azure - 发送到服务总线时出现OperationCanceledException

Azure API 管理服务不会将 header 中的客户端证书传递到后端

arrays - AngularJS自定义过滤器功能

java - 将接收到的数据集导出到数组

c# - SQL命令文本到DataSet的直接方法

.net - Azure Service Fabric - 使用自定义服务删除 Actor