过滤数据工厂中多列的行
Filter rows on multiple columns in data Factory
我最近开始研究 Microsoft Azure,更准确地说是数据工厂。
我想在 Azure ML 中处理数据集之前清理我的数据集,因此我使用数据流创建了一些步骤来执行此操作。但是,我不知道如何使用多列让我解释一下。
假设我有一个包含 15 个特征(列)的数据集,我想过滤每个特征的异常值,假设我有 50 万行。换句话说,在我的第一列中可能有 15 个异常值,在我的第二列中可能有 5 个,在我的第三列中可能有 5 个异常值,比如 10 等等......但这些值位于彼此不同的行上。
我想做的是过滤掉所有高于或低于阈值的值,我想一次对所有列而不是 1 列执行此操作。因为现在我可以做到这一点,但我必须为每一列创建一个过滤器块,所以这里有 20 个过滤器块。
我很确定有办法做到这一点,但我就是找不到方法。
非常感谢任何帮助,如果您有任何问题或不清楚的地方,请告诉我,我会在这里回答。
在此先感谢您的帮助!
更新:
如果不满足其中的列,是否会删除整行。
我想我们可以采取更简单的方法。
在过滤器中使用表达式 activity:
column1>30 && column1<100 && column2>35 && column2<95 && column3>40 && column3<90
我想到了一个比较方便的方法,我们需要使用两个Lookup活动和两个Filter活动来过滤多个列。
这里我将过滤3列,其中列中的数字大于30小于100。
这里是源码中的数据预览,
在 minValueSource
,我在 Azure datalake gen2 的 csv 中存储了一个最小值。 maxValueSource
与 minValueSource
相同。
然后我设置Lookup1activity。对于您的情况,您需要在此处设置 25 列。
然后我们需要在 Lookup1 activity 处设置 Optmize
选项卡。
数据预览是这样的,如果其中一列包含的值小于30,就会有null
。
在Filter1 activity处,我们可以使用表达式!isNull(minValue)
来过滤小于30的值。
Lookup2 和 Filter2 的设置相同activity。我不会在这里展示。
在sink处,我们可以设置映射选项卡来选择我们需要的列。
我认为这比设置 20 个或更多过滤块更容易。
我最近开始研究 Microsoft Azure,更准确地说是数据工厂。 我想在 Azure ML 中处理数据集之前清理我的数据集,因此我使用数据流创建了一些步骤来执行此操作。但是,我不知道如何使用多列让我解释一下。
假设我有一个包含 15 个特征(列)的数据集,我想过滤每个特征的异常值,假设我有 50 万行。换句话说,在我的第一列中可能有 15 个异常值,在我的第二列中可能有 5 个,在我的第三列中可能有 5 个异常值,比如 10 等等......但这些值位于彼此不同的行上。
我想做的是过滤掉所有高于或低于阈值的值,我想一次对所有列而不是 1 列执行此操作。因为现在我可以做到这一点,但我必须为每一列创建一个过滤器块,所以这里有 20 个过滤器块。 我很确定有办法做到这一点,但我就是找不到方法。
非常感谢任何帮助,如果您有任何问题或不清楚的地方,请告诉我,我会在这里回答。
在此先感谢您的帮助!
更新:
如果不满足其中的列,是否会删除整行。
我想我们可以采取更简单的方法。
在过滤器中使用表达式 activity:
column1>30 && column1<100 && column2>35 && column2<95 && column3>40 && column3<90
我想到了一个比较方便的方法,我们需要使用两个Lookup活动和两个Filter活动来过滤多个列。
这里我将过滤3列,其中列中的数字大于30小于100。
这里是源码中的数据预览,
在
minValueSource
,我在 Azure datalake gen2 的 csv 中存储了一个最小值。maxValueSource
与minValueSource
相同。
然后我设置Lookup1activity。对于您的情况,您需要在此处设置 25 列。
然后我们需要在 Lookup1 activity 处设置
Optmize
选项卡。数据预览是这样的,如果其中一列包含的值小于30,就会有
null
。在Filter1 activity处,我们可以使用表达式
!isNull(minValue)
来过滤小于30的值。Lookup2 和 Filter2 的设置相同activity。我不会在这里展示。
在sink处,我们可以设置映射选项卡来选择我们需要的列。
我认为这比设置 20 个或更多过滤块更容易。