in spark/sql/dataframe.go [483:528]
func (df *dataFrameImpl) WriteResult(ctx context.Context, collector ResultCollector, numRows int, truncate bool) error {
truncateValue := 0
if truncate {
truncateValue = 20
}
vertical := false
plan := &proto.Plan{
OpType: &proto.Plan_Root{
Root: &proto.Relation{
Common: &proto.RelationCommon{
PlanId: newPlanId(),
},
RelType: &proto.Relation_ShowString{
ShowString: &proto.ShowString{
Input: df.relation,
NumRows: int32(numRows),
Truncate: int32(truncateValue),
Vertical: vertical,
},
},
},
},
}
responseClient, err := df.session.client.ExecutePlan(ctx, plan)
if err != nil {
return sparkerrors.WithType(fmt.Errorf("failed to show dataframe: %w", err), sparkerrors.ExecutionError)
}
_, table, err := responseClient.ToTable()
if err != nil {
return err
}
rows, err := types.ReadArrowTableToRows(table)
if err != nil {
return err
}
for _, row := range rows {
values := row.Values()
collector.WriteRow(values)
}
return nil
}