2
Использование JDBC DataSource в Спарк SQL мы пытаемся выполнить ниже запросискра - NVL функция типа данных ошибка несоответствия
select nvl(columnName , 1.0) from tablename
дает ошибку в
cannot resolve 'nvl(tablename.`columnname`, 1.0BD)' due to data type mismatch: input to function coalesce should all be the same type, but it's [decimal(38,10), decimal(2,1)]
Я знаю, мы можем решить эту проблему с
select nvl(columnname , CAST(1.0 as decimal(38,10))) from tablename
похоже, что мне нужно найти тип данных каждого столбца и наложить на него.
- Есть ли другой способ справиться с этим?
- Могу ли я дать определение схемы вверх при загрузке данных, например, в формате csv. [https://issues.apache.org/jira/browse/SPARK-16848]
- Как преобразовать загруженные типы данных Dataframe для каждого столбца.
Спасибо за ответ. Я понимаю ответ для пунктов 1 и 2, в отношении пункта 3, что накладные расходы на действие «выбрать». –
Накладные расходы 'select' низки (особенно при использовании генерации кода); вероятно, быстрее, чем преобразования, которые происходят в некоторых источниках данных. –