Если вы прочитали исходный код spark для класса Transformer, вы обнаружите, что метод .transform
принимает DataSet[*]
в качестве аргумента и возвращает DataFrame
.
Это кажется излишне неэффективным.
AFAIKT, это означает, что каждый раз, когда вы применяете преобразователь, вы конвертируете DataSet в DataFrame, который не является бесплатной операцией. Затем, если вы объединяете несколько преобразователей в конвейер, вы конвертируете туда-обратно между DataSets и DataFrames для каждого этапа конвейера.
Есть ли причина для этого? Есть ли какое-то неявное преобразование или что-то такое, что не влияет на производительность?