scala - 不支持的文字类型类 scala.runtime.BoxedUnit
问题描述
我正在尝试过滤从 oracle 读取的数据框的列,如下所示
import org.apache.spark.sql.functions.{col, lit, when}
val df0 = df_org.filter(col("fiscal_year").isNotNull())
当我这样做时,我遇到以下错误:
java.lang.RuntimeException: Unsupported literal type class scala.runtime.BoxedUnit ()
at org.apache.spark.sql.catalyst.expressions.Literal$.apply(literals.scala:77)
at org.apache.spark.sql.catalyst.expressions.Literal$$anonfun$create$2.apply(literals.scala:163)
at org.apache.spark.sql.catalyst.expressions.Literal$$anonfun$create$2.apply(literals.scala:163)
at scala.util.Try.getOrElse(Try.scala:79)
at org.apache.spark.sql.catalyst.expressions.Literal$.create(literals.scala:162)
at org.apache.spark.sql.functions$.typedLit(functions.scala:113)
at org.apache.spark.sql.functions$.lit(functions.scala:96)
at org.apache.spark.sql.Column.apply(Column.scala:212)
at com.snp.processors.BenchmarkModelValsProcessor2.process(BenchmarkModelValsProcessor2.scala:80)
at com.snp.utils.Utils$$anonfun$getAllDefinedProcessors$1.apply(Utils.scala:30)
at com.snp.utils.Utils$$anonfun$getAllDefinedProcessors$1.apply(Utils.scala:30)
at com.sp.MigrationDriver$$anonfun$main$6$$anonfun$apply$2.apply(MigrationDriver.scala:140)
at com.sp.MigrationDriver$$anonfun$main$6$$anonfun$apply$2.apply(MigrationDriver.scala:140)
at scala.Option.map(Option.scala:146)
at com.sp.MigrationDriver$$anonfun$main$6.apply(MigrationDriver.scala:138)
at com.sp.MigrationDriver$$anonfun$main$6.apply(MigrationDriver.scala:135)
at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:733)
at scala.collection.Iterator$class.foreach(Iterator.scala:891)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1334)
at scala.collection.MapLike$DefaultKeySet.foreach(MapLike.scala:174)
at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:732)
at com.sp.MigrationDriver$.main(MigrationDriver.scala:135)
at com.sp.MigrationDriver.main(MigrationDriver.scala)
知道我在这里做错了什么以及如何解决这个问题吗?
解决方案
只需删除函数上的括号:
从:
val df0 = df_org.filter(col("fiscal_year").isNotNull())
到:
val df0 = df_org.filter(col("fiscal_year").isNotNull)
推荐阅读
- python - 问题是获取“n”位数字并打印由空格分隔的每个数字。可能是什么问题?
- sql-server - 如何在 SQL Server Management Studio 中备份连接
- python - 编辑 DataFrafe 列中的值 -Python 和 PANDAS
- wordpress - 将引导程序 4 JS 文件添加到 Wordpress 主题时出错 - 内存耗尽
- google-apps-script - Google-Apps-Script 将 XML 转换为 JSON
- azure - 在 Azure 中连接 VPN 时遇到问题
- r - 在 R 中绘制一个简单的直方图
- python - 如何合并多个数据框并按时间戳对它们进行排序 - Pandas Python
- python - 从 weatherbug 查询中检索值的表
- salesforce - Salesforce - 从自定义对象中的标准对象引用自定义字段