我正在尝试使用rdd#tods方法从rdd创建spark数据集。
但是,我希望使用第三方库中定义的现有域对象,而不是使用scala case类来指定模式。但是,当我这样做时,我会得到以下错误:
scala> import org.hl7.fhir.dstu3.model.Patient
import org.hl7.fhir.dstu3.model.Patient
scala> val patients = sc.loadFromMongoDB(ReadConfig(Map("uri" -> "mongodb://mongodb/fhir.patients")))
patients: com.mongodb.spark.rdd.MongoRDD[org.bson.Document] = MongoRDD[0] at RDD at MongoRDD.scala:47
scala> val patientsDataSet = patients.toDS[Patient]()
<console>:44: error: not enough arguments for method toDS: (beanClass: Class[org.hl7.fhir.dstu3.model.Patient])org.apache.spark.sql.Dataset[org.hl7.fhir.dstu3.model.Patient].
Unspecified value parameter beanClass.
val patientsDataSet = patients.toDS[Patient]()
^
这是我去掉括号后得到的结果:
scala> val patientsDataSet = patients.toDS[Patient]
<console>:46: error: missing arguments for method toDS in class MongoRDD;
follow this method with `_' if you want to treat it as a partially applied function
val patientsDataSet = patients.toDS[Patient]
我可以用java对象代替case类吗?
谢谢!
1条答案
按热度按时间ocebsuys1#
创建扩展java对象的case类可能会奏效。
java 语:
斯卡拉: