T
türünde Encoder, Spark'e, T
örneklerinin dâhili Spark temsilciliğinden nasıl kodlanabileceğini ve ~ kodlanabildiğini söyleyen sınıftır. Sınıfın şemasını ve sınıfınızı yansıma yoluyla oluşturmak için kullanılan ClassTag skalasını içerir.
Kodunuzda, Dataset'i herhangi bir T türü üzerinde uzmanlaşmazsınız, bu yüzden sizin için bir Enkoder oluşturamıyorum, ancak size örnek verebilmem için Databricks Spark documentation'dan bir örnek verebilirim. Her şeyden önce , en biz DateSet yüklemek istediğiniz sınıfı University
yapalım:
public class University implements Serializable {
private String name;
private long numStudents;
private long yearFounded;
public void setName(String name) {...}
public String getName() {...}
public void setNumStudents(long numStudents) {...}
public long getNumStudents() {...}
public void setYearFounded(long yearFounded) {...}
public long getYearFounded() {...}
}
Şimdi University
bir Java Bean ve Spark Encoders
kütüphane fonksiyonu bean Java Beans için kodlayıcı oluşturmak için bir yol sağlar :
daha sonra birinci (yedek olan) bir DataFrame içine yüklemeden parke
University
içeren bir veritabanı okumak için kullanılabilir
Encoder<University> universityEncoder = Encoders.bean(University.class)
:
ve şimdi schools
bir parke dosyasından okunan bir Dataset<University>
numarasıdır.