RDD#toDSメソッドを使用してRDDからSpark DataSetを作成しようとしています。Spark DataSet CreationでScala Caseクラスの代わりにJavaドメインオブジェクトを使用
しかし、Scalaのケースクラスを使用してスキーマを指定する代わりに、サードパーティのライブラリで定義されている既存のドメインオブジェクトを使用したいと考えています。私が行うときしかし、私は次のエラーを取得すること:
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オブジェクトを使用することができます。
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]()
^
これは、私は括弧を削除すると、私が得るものですここのクラスは?
ありがとうございます!
は括弧なしで試してみよう: 'patients.toDS [患者]' – Yawar
@Yawar私は括弧なしでそれを試してみましたが、私は私の質問を更新しました私が得たエラー。 –
あなたの '.toDS [Patient]()'メソッドに必要なBeanクラスを与えてみましょう: 'patients.toDS [Patient](classOf [Patient])' – Yawar