FlagDuplicateRows
转换会返回一个新列,其中每行都有指定值,指示该行是否与数据集中的前面的行完全匹配。找到匹配项后,它们会被标记为重复项。第一次出现不会被标记,因为它与前面的行不匹配。
示例
from pyspark.context import SparkContext
from pyspark.sql import SparkSession
from awsgluedi.transforms import *
sc = SparkContext()
spark = SparkSession(sc)
input_df = spark.createDataFrame(
[
(105.111, 13.12),
(13.12, 13.12),
(None, 13.12),
(13.12, 13.12),
(None, 13.12),
],
["source_column_1", "source_column_2"],
)
try:
df_output = data_quality.FlagDuplicateRows.apply(
data_frame=input_df,
spark_context=sc,
target_column="flag_row",
true_string="True",
false_string="False",
target_index=1
)
except:
print("Unexpected Error happened ")
raise
输出
输出是 PySpark DataFrame 以及一个附加列 flag_row
,其根据 source_column_1
列指示某行是否重复。生成的“df_output”DataFrame 将包含以下行:
```
+---------------+---------------+--------+
|source_column_1|source_column_2|flag_row|
+---------------+---------------+--------+
| 105.111| 13.12| False|
| 13.12| 13.12| True|
| null| 13.12| True|
| 13.12| 13.12| True|
| null| 13.12| True|
+---------------+---------------+--------+
```
flag_row
列指示某行是否重复。“true_string”设置为“True”,“false_string”设置为“False”。“target_index”设置为 1,这表示 flag_row
列将被插入到输出 DataFrame 的第二个位置(指数 1)。
方法
__call__(spark_context, data_frame, target_column, true_string=DEFAULT_TRUE_STRING, false_string=DEFAULT_FALSE_STRING, target_index=None)
FlagDuplicateRows
转换会返回一个新列,其中每行都有指定值,指示该行是否与数据集中的前面的行完全匹配。找到匹配项后,它们会被标记为重复项。第一次出现不会被标记,因为它与前面的行不匹配。
-
true_string
– 如果该行与前面的行匹配,则插入该值。 -
false_string
– 如果行是唯一的,则插入该值。 -
target_column
– 插入到数据集中的新列的名称。
apply(cls, *args, **kwargs)
继承自 GlueTransform
apply。
name(cls)
继承自 GlueTransform
name。
describeArgs(cls)
继承自 GlueTransform
describeArgs。
describeReturn(cls)
继承自 GlueTransform
describeReturn。
describeTransform(cls)
继承自 GlueTransform
describeTransform。
describeErrors(cls)
继承自 GlueTransform
describeErrors。
describe(cls)
继承自 GlueTransform
describe。