2016-08-09 67 views
0

Ich möchte eine generische Encoder implementieren, da ich ein kleines Projekt auf Spark-1.6 haben, und wenn ich es zum Funken 2.0 zu migrieren seine mir die Warnung und Fehler vonWie implementiert man einen generischen Encoder?

Unable to find encoder for type stored in a Dataset. Primitive types (Int, String, etc) and Product types (case classes) are supported by importing spark.implicits._ Support for serializing other types will be added in future releases. 

an vielen Orten geben daher möchte ich Implementieren Sie einen generischen Encoder und fügen Sie ihn in das Paketobjekt ein. Ich möchte nur wissen, wie kann ich einen generischen Encoder in Spark 2.0 implementieren?

+0

Es ist nur ein Merkmal http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.sql.Encoder – Alec

Antwort

2

Die Entwicklung benutzerdefinierter Encoder beginnt normalerweise damit, vorhandene Encoder aus dem Objekt org.apache.spark.sql.Encoders zu erstellen.

Bitte beachten Sie, dass viele Stellen in Spark prüfen, ob der verwendete Encoder eine Instanz von ExpressionEncoder ist (d. H. SparkSession.createDataset), deshalb sollten Sie Expression Encoder als Grundlage für benutzerdefinierte Entwicklung ansehen.