У меня есть два типа входных файлов, которые я загружаю в задание ADLA.В одном у меня есть куча данных (слева), а в другом у меня есть список значений, которые важны для меня (справа).
В качестве примера, скажем, я использую следующее в моем «левом» наборе строк:
| ID | URL |
|----|-------------------------|
| 1 | https://www.google.com/ |
| 2 | https://www.yahoo.com/ |
| 3 | https://www.hotmail.com/|
В моем правом наборе строк будет что-то вроде следующего:
| ID | Name | Regex | Exceptions | Other Lookup Val |
|----|-------|-------------|------------|------------------|
| 1 | ThisA | /[a-z]{3,}/ | abc | 091238 |
| 2 | ThatA | /[a-z]{3,}/ | xyz | lksdf9 |
| 3 | OtherA| /[a-z]{3,}/ | def | 098143 |
Поскольку каждый загружается с помощью оператора EXTRACT, оба находятся в отдельных наборах строк.В идеале я хотел бы иметь возможность загружать все значения для обоих наборов строк и перебирать правильное, чтобы выполнить серию вычислений для левого, чтобы найти соответствие по различным бизнес-правилам.Примечательно, что нет смысла просто присоединяться, и это не простая оценка Regex, а скорее нечто более сложное.Таким образом, вывод может выглядеть примерно как «левый» набор строк:
| ID | URL |
|----|-------------------------|
| 1 | https://www.google.com/ |
| 3 | https://www.hotmail.com/|
Теперь COMBINER - это единственное UDO, которое, как я вижу, принимает два набора строк, но синтаксис U-SQL требует, чтобы я сделал несколькосвоего рода заявление о присоединении здесь.Однако нет общего идентификатора между каждым из наборов строк, так что нечего объединять, что внезапно делает это менее идеальным.Из опций атрибута, определенных в https://docs.microsoft.com/en-us/azure/data-lake-analytics/data-lake-analytics-u-sql-programmability-guide#use-user-defined-combiners,, я хотел бы указать это как полное, потому что мне нужно, чтобы каждое из левых значений было доступно для оценки по каждому из правых, но, опять же, нет общего идентификатора, чтобы сделать
Затем я попытался использовать REDUCER, который принял IRowset в конструкторе IReducer в качестве параметра, затем попытался просто передать набор строк из U-SQL, но этот синтаксис ему не понравился.
Есть ли способ выполнить это пользовательское объединение так, чтобы не требовалось предложение JOIN ON?