В моем случае эта проблема возникла из-за ConnectionString в моем 64-битном Machine.Config
C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\Config
Вместо стандартного 32-битного
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config
Чтобы исправить удаление 32-битной настройки предпочтения на вкладке «Сборка» свойств проекта
в общем случае вы не можете передавать пользовательские объекты в UDF, и вы должны вызывать только udf для ненулевых строк, иначе в вашем UDF будет исключение NullPointerException. попробуйте:
val logCount = (logs: Seq[Row]) => logs.size()
val logCountUdf = udf(logCount)
df.withColumn("LogCount", when($"LogRecords".isNotNull,logCountUdf($"LogRecords")))
или просто используйте встроенную функцию size
, чтобы получить logCount:
df.withColumn("LogCount", size($"LogRecords"))