В модуле Python h2o, как указать na_strings при использовании h2o.import_sql_select () для импорта данных? - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь импортировать данные из таблицы MySQL в H2oFrame, используя h2o.import_sql_select().Мне бы хотелось, чтобы значения NULL или пустые значения в столбцах VARCHAR в базе данных распознавались как NA при импорте в H2oFrame, но они считаются пустыми строковыми литералами.Однако для числовых столбцов значения NULL автоматически распознаются как NA.

Вот код, который у меня есть:

select_query = 'SELECT * FROM my_table'
train_data = h2o.import_sql_select("jdbc:mysql://localhost:3306/my_schema", select_query, "username", "password", use_temp_table=False)

train_data['my_string_column'].isna() всегда приводит к нулям даже для NULL или пустым значениям, полученным избаза данных.

Однако, когда я выгружаю данные в CSV и импортирую их, используя h2o.import_file('/path/to/file.csv', na_strings=['']), а затем выполняю train_data['my_string_column'].isna(), я вижу, что пустые значения правильно распознаются как NA из-за параметра na_strings.

Существует ли какой-либо способ указания na_strings или какой-либо другой способ обойти ожидаемое поведение при импорте данных с использованием h2o.import_sql_select()?

1 Ответ

1 голос
/ 12 июня 2019

В настоящее время такая функция не реализована. Это просто потому, что в отличие от CSV, где нет разницы между пустой строкой и NULL, SQL имеет понятие NULL, поэтому такая возможность не требуется.

Но вы говорите, что для строковых столбцов вы не получаете никаких значений N / A в вашем кадре H2O, что звучит как ошибка, и я рассмотрю ее.

...