For now Spanner's cross-language transform requires to get Beam Schema. It should be possible to determine the schema otherwise.
One solution would be to execute query with spanner client and then translate spanner schema to beam schema. But this is very poor solution as the query would be executed twice.
Look for it at SpannerTransformRegistrar.ReadBuilder