func (fs *DataSource) Analyze() (sif.PartitionMap, error) {
	return &PartitionMap{
		source: fs,
	}, nil
}
Analyze returns a PartitionMap, describing how the source data will be divided into Partitions
package memory
import (
	"github.com/go-sif/sif"
	"github.com/go-sif/sif/datasource"
)
type DataSource struct {
	data   [][]byte
	schema sif.Schema
}
func CreateDataFrame(data [][]byte, parser sif.DataSourceParser, schema sif.Schema) sif.DataFrame {
	source := &DataSource{data, schema}
	df := datasource.CreateDataFrame(source, parser, schema)
	return df
}