2017-03-08 4 views
2

Als allgemeine Faustregel gilt, wie wichtig es ist, wenn es um Spark Scala-Datentypen geht? Ich bin daran interessiert, Speicher zu sparen, aber wenn es andere Überlegungen gibt, würde ich mich freuen, sie zu hören.Wie wichtig sind Datentypen in Spark/Scala?

Macht Spark irgendwelche Castings, die beispielsweise einen Short statt Int oder Long überflüssig machen würden?

Oder schafft es mehrere Referenzen, die diese Einsparungen zu einem kleinen Teil der Speicherauslastung der Anwendung machen würden?

Wenn nicht, was ist, wenn ich einen Dezimalwert habe, für den ich sehr wenig Präzision brauche. Sagen Sie drei Ziffern von 0 bis 1. Ich könnte ein Short verwenden, um dies (16 Bits) anstelle eines Floats (32 Bits) darzustellen. Ist das eine sinnvolle Optimierung?

Antwort

1

Es gibt einige verfügbar Optimierungen in Spark-SQLs Optimizer, die mit DecimalAggregates logischer Optimierung zum Beispiel kommt die Decimal -basierte Berechnungen mit optimierten Operatoren (siehe How (if at all) could rounding Decimals improve performance?) ersetzt.

Ich würde auch einige weitere Optimierungen in InternalRow erwarten, wenn es Ihren Datensatz von unserem unserialisierten Format in seine interne columnare Darstellung konvertiert (aber das ist etwas, das ich nicht genug ausführlich erforscht habe).

Verwandte Themen