Используя SSIS для отображения трудно кодированных значений как части one-many миграции таблицы в Visual Studio

Проблема, кажется, с ненаблюдаемыми категориями. Из документации pandas по groupby:

При использовании категориального группировщика (в качестве отдельного группировщика или в составе нескольких группировщиков) наблюдаемое ключевое слово определяет, следует ли возвращать декартово произведение всех возможных значений группировщиков. (наблюдаемый = ложный) или только те, которые являются наблюдаемыми группировками (наблюдаемый = истинный).

Расчет декартового произведения в моем конкретном случае в конечном итоге приводит к ошибке вещания. Вот почему некоторые столбцы работают, а другие нет: у тех столбцов, которые работают, нет никаких ненаблюдаемых категорий, в то время как у тех, которые не работают, есть ненаблюдаемые категории.

Чтобы избежать проблем с этим, установите observed = True при группировке. Это означает, что groupby будет использовать только наблюдаемые категории (то есть те категории, для которых существуют записи). В моем случае это было бы:
allfactor = dataframe.groupby(factor, observed=True)[reference_area].value_counts()

Насколько показывает мое тестирование, это не приводит к потере записей кадра данных для дальнейшего анализа. Нет записей для ненаблюдаемых категорий (даже со значениями NaN), поэтому мы не теряем записей при использовании только наблюдаемых категорий. Имейте в виду, что если вы хотите проанализировать эти ненаблюдаемые категории, это не то решение, которое вы ищете.

5
задан Nick Josevski 5 May 2009 в 00:54
поделиться

2 ответа

Способ SSIS для создания новых столбцов (со статическими значениями или без) заключается в использовании преобразования «Производный столбец» в потоке данных между источником и местом назначения.

Это позволяет вам для указания дополнительных столбцов и их значений с помощью выражения. Для текущей даты / времени используйте Getdate () в качестве выражения и установите тип данных на «date (DT_DATE)». Чтобы жестко закодировать значение, заключите его в двойные кавычки в выражении (например, "1") и укажите соответствующий тип данных.

8
ответ дан 13 December 2019 в 19:35
поделиться

Вместо того, чтобы использовать Таблицу в качестве источника, как насчет указания запроса конкретно? Таким образом, вы можете статически определять значения как часть источника.

Например,

SELECT id, fieldOne, fieldTwo, '1' AS createdBy, GetDate() AS createdDate
FROM SourceTable

Я недавно сделал именно эту вещь.

Важно помнить, что вам нужно убедиться, что ваши типы данных совпадают. У меня было несколько проблем с несовпадающими типами строковых данных (UTF-8 и т. П.).

3
ответ дан 13 December 2019 в 19:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: