0
私は外部のjarファイルにpojosを設定しました。これらのオブジェクトからデータセットを作成したかったのです。 ScalaのケースクラスからDatasetを作成すると、期待通りにデータセットを作成することができます。 JAVAオブジェクトで同じことをしようとすると、すべてのデータが1つのオブジェクトとして1つの列に与えられます。私はJavaでこれをしようとするとcreate spark JAVAオブジェクトのデータセットfrom scala、spark 1.6
case class patientDiagnosis(patientId: Long, visitId: Long, diagnosisCode: String, isPrimaryDiagnosis: String, patientDiagnosisId: Long, sourceSystemUniqueIdentifier: String, diagnosisCodeSystem: String) {}
println("case Dataset from scala object :")
joinDf.as[patientDiagnosis].show()
OUTPUT:
case Dataset from scala object :
+---------+-------+-------------+------------------+------------------+----------------------------+-------------------+
|patientId|visitId|diagnosisCode|isPrimaryDiagnosis|patientDiagnosisId|sourceSystemUniqueIdentifier|diagnosisCodeSystem|
+---------+-------+-------------+------------------+------------------+----------------------------+-------------------+
| 1388158|1764555| 296.20| 1| 1247383| 1247383| ICD9|
+---------+-------+-------------+------------------+------------------+----------------------------+-------------------+
はそれが出力を下回るいます:
JAVA Object:
public class PatientDiagnosis implements Serializable{
private static final long serialVersionUID = -7971192387675901350L;
private long patientId;
private long visitId;
private String diagnosisCode;
private String isPrimaryDiagnosis;
private long patientDiagnosisId;
private String sourceSystemUniqueIdentifier;
private int isDeleted;
private String diagnosisCodeSystem;
}
scala code:
import sqlContext.implicits._
val p:Encoder[com....PatientDiagnosis] = Encoders.bean(classOf[com....PatientDiagnosis])
println("case Java Encoder :")
joinDiagnf.as[com....PatientDiagnosis](p).show(false)
OUTPUT:
case Java Encoder :
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+---------+------------------+------------------+---------+----------------------------+-------+
|diagnosisCode |diagnosisCodeSystem|isDeleted|isPrimaryDiagnosis|patientDiagnosisId|patientId|sourceSystemUniqueIdentifier|visitId|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+---------+------------------+------------------+---------+----------------------------+-------+
|PatientDiagnosis [patientId=0, visitId=1764555, diagnosisCode=296.20, isPrimaryDiagnosis=1, patientDiagnosisId=1247383, sourceSystemUniqueIdentifier=1247383, isDeleted=0, diagnosisCodeSystem=ICD9]|
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+---------+------------------+------------------+---------+----------------------------+-------+
は私がどんな構文ミスをやっているか、Scalaの火花で1.6バージョンをJavaオブジェクトからデータセットを作成するためにサポートされていません。
'joinDiagnf'のスキーマは何ですか? –
オブジェクトごとに同じ – Kalpesh