我正在设法解决这个问题。
第一行包含:NUMBER:INC00012,附加注释:尚未请求
第二行包含:NUMBER:INC0000001,附加注释:w尚未请求 DF_FILE_PATH =指向csv的方向。包含这些行的文件。
WrongData_REG_EXP =(DF_FILE_PATH
.filter(DF_FILE_PATH.Number.rlike('^((?!INC([0-9]){7}).)*$'))
.filter(DF_FILE_PATH.AdditionalComments.rlike('^((?!Not Yet Requested).)*$'))
)
display (WrongData_REG_EXP)
当我仅加载一个过滤器时,它显示了错误的变量。但是当我添加新的过滤器时。它不显示任何内容。这是因为没有行包含这两个正则表达式。 但是另一行具有第二个过滤器,第一行具有第一个过滤器。
如何同时显示它们?
答案 0 :(得分:0)
我为解决此问题所做的是在Databricks中使用python进行sql查询。
query = '''
---- Get Corrupt records
select * from bi4it_da.{0}_{1}_{2}_full_no_corrupt_NEW
where number in
(
SELECT {0}_{1}_{2}_Full_No_Corrupt_NEW.number FROM BI4IT_DA.{0}_{1}_{2}_Full_No_Corrupt_NEW
MINUS
SELECT {0}_{1}_{2}_Full_Data_Set.number FROM BI4IT_DA.{0}_{1}_{2}_Full_Data_Set
)
'''.format(PROCESS_TYPE, SOURCE_SYSTEM, SOURCE_FILE_NAME)
display(spark.sql(query))
完整数据集减去良好记录后,将保留错误的记录。