我正在尝试在Apache Flink中创建一个通用方法,以使用案例类来解析DataSet [String](JSON字符串)。我尝试使用TypeInformation,如此处所述:https://ci.apache.org/projects/flink/flink-docs-stable/dev/types_serialization.html#generic-methods
我正在使用liftweb解析JSON字符串,这是我的代码:
import net.liftweb.json._
import org.apache.flink.api.common.typeinfo.TypeInformation
import org.apache.flink.api.scala._
class Loader(settings: Map[String, String])(implicit environment: ExecutionEnvironment) {
val env: ExecutionEnvironment = environment
def load[T: TypeInformation](): DataSet[T] = {
val data: DataSet[String] = env.fromElements(
"""{"name": "name1"}""",
"""{"name": "name2"}"""
)
implicit val formats = DefaultFormats
data.map(item => parse(item).extract[T])
}
}
但是我得到了错误:
No Manifest available for T
data.map(item => parse(item).extract[T])
然后我尝试添加清单并像这样删除TypeInformation:
def load[T: Manifest](): DataSet[T] = { ...
然后我遇到下一个错误:
could not find implicit value for evidence parameter of type org.apache.flink.api.common.typeinfo.TypeInformation[T]
对此我感到非常困惑,非常感谢您的帮助。 谢谢。