简体   繁体   English

Spark 数据帧 udf 没有可用的 TypeTag

[英]Spark dataframe udf No TypeTag available

I am trying to extend spark ml pipeline model with a filter transformer, after我正在尝试使用过滤器变压器扩展spark ml管道模型,之后

abstract class RuleFilter[IN, T <: RuleFilter[IN, T]]
    extends RuleTransformer with HasInputCol  {
  // def filterFuntion: String
  /** @group setParam */
  def setInputCol(value: String): T = set(inputCol, value).asInstanceOf[T]

  protected def createFilterFunc: IN => Boolean

  override def transform(df: DataFrame): DataFrame = {
    transformSchema(df.schema, logging = true)
    val transformUDF = udf[Boolean, IN](this.createFilterFunc)
    df.filter(transformUDF(df($(inputCol))))
  }
}

this code did not compile with an error:此代码未编译并出现错误:

 No TypeTag available for IN
[error]     val transformUDF = udf[Boolean, IN](this.createFilterFunc)

how do I let this work?我该如何让它工作?

I need it to work with some explicit defined type in inherit class such as我需要它在继承类中使用一些显式定义的类型,例如

class PriceFilter extends RuleFilter {
    def createFilterFunc(val: Double) = val > 500
}

You need to tell the compiler explicitly that you want a TypeTag for type In :你需要明确地告诉编译器你想要一个类型为InTypeTag

import scala.reflect.runtime.universe._
abstract class RuleFilter[In: TypeTag, T <: RuleFilter[In, T]]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 udf没有TypeTag可用于类型字符串 - udf No TypeTag available for type string 对象内部定义的Apache-Spark UDF引发“字符串没有可用的TypeTag” - Apache-Spark UDF defined inside object raises “No TypeTag available for String” 没有 TypeTag 可用于案例 class 使用 scala 3 和火花 3 - No TypeTag available for a case class using scala 3 with spark 3 使用udf函数删除DataFrame字段中的换行符会导致TypeTag错误 - Removing newlines in a DataFrame field with udf function gives TypeTag Error Spark Scala API:官方示例中spark.createDataFrame中没有typeTag - Spark Scala API: No typeTag available in spark.createDataFrame in official example 带有scala2.10.6的spark1.6.2没有可用的TypeTag - spark1.6.2 with scala2.10.6 No TypeTag available 具有“No TypeTag available”的Scala / Spark应用程序“def main”样式App中的错误 - Scala/Spark App with “No TypeTag available” Error in “def main” style App Spark:DataFrame 上的 UDF 任务不可序列化 - Spark: Task not Serializable for UDF on DataFrame IntelliJ在udf函数上构建了一个有2个错误的项目 - 没有TypeTag可用于Option [Seq [Testclass]] - IntelliJ built a project with 2 errors on udf function - No TypeTag available for Option[Seq[Testclass]] Spark Dataframe UDF - 不支持 Any 类型的架构 - Spark Dataframe UDF - Schema for type Any is not supported
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM