Фильтруйте регулярное выражение для столбца и строки.комбинированный - PullRequest
0 голосов
/ 25 октября 2018

я выясняю, как решить эту проблему.

первая строка содержит: NUMBER: INC00012, AdditionalComment: еще не запрошено

Вторая строка содержит: NUMBER: INC0000001, AdditionalComment: 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)

это показывает неправильную переменную, когда я загружаю только один фильтр.но когда я добавляю новый фильтр.Это ничего не отображает.Это потому, что нет строки, которая имеет эти 2 регулярных выражения.но другая строка имеет второй фильтр, а первая строка имеет первый фильтр.

Как я могу отобразить их оба?

1 Ответ

0 голосов
/ 06 ноября 2018

То, что я сделал, чтобы решить это, было SQL-запрос в Databricks с python.

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))

Полный набор данных минус хорошие записи, неправильные записи остаются.

...