Documentation
¶
Overview ¶
Package exports provides functionality to save the data contained in a DataFrame into another format. It provides inverse functionality to the imports package.
Index ¶
- func ExportToCSV(ctx context.Context, w io.Writer, df *dataframe.DataFrame, ...) error
- func ExportToExcel(ctx context.Context, w io.Writer, df *dataframe.DataFrame, ...) error
- func ExportToJSON(ctx context.Context, w io.Writer, df *dataframe.DataFrame, ...) error
- func ExportToParquet(ctx context.Context, w io.Writer, df *dataframe.DataFrame, ...) error
- func ExportToSQL(ctx context.Context, db execContexter, df *dataframe.DataFrame, ...) error
- type CSVExportOptions
- type Database
- type ExcelExportOptions
- type JSONExportOptions
- type ParquetExportOptions
- type PrimaryKey
- type SQLExportOptions
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExportToCSV ¶
func ExportToCSV(ctx context.Context, w io.Writer, df *dataframe.DataFrame, options ...CSVExportOptions) error
ExportToCSV exports a Dataframe to a CSV file.
func ExportToExcel ¶
func ExportToExcel(ctx context.Context, w io.Writer, df *dataframe.DataFrame, options ...ExcelExportOptions) error
ExportToExcel exports a Dataframe to an excel file.
func ExportToJSON ¶
func ExportToJSON(ctx context.Context, w io.Writer, df *dataframe.DataFrame, options ...JSONExportOptions) error
ExportToJSON exports a Dataframe in the jsonl format. Each line represents a row from the Dataframe.
See: http://jsonlines.org/ for more information.
func ExportToParquet ¶
func ExportToParquet(ctx context.Context, w io.Writer, df *dataframe.DataFrame, options ...ParquetExportOptions) error
ExportToParquet exports a Dataframe as a Parquet file. Series names are escaped by replacing spaces with underscores and removing ",;{}()=" (excluding quotes) and then lower-casing for maximum cross-compatibility.
func ExportToSQL ¶
func ExportToSQL(ctx context.Context, db execContexter, df *dataframe.DataFrame, tableName string, options ...SQLExportOptions) error
ExportToSQL exports a Dataframe to a SQL Database. It is assumed to be a PostgreSQL database (for placeholder purposes), unless otherwise set to MySQL using the Options.
Example (gist):
import (
stdSql "database/sql"
"github.com/mmavka/dataframe-go/exports"
sql "github.com/rocketlaunchr/mysql-go"
"github.com/myesui/uuid"
)
func main() {
p, _ := stdSql.Open("mysql", "user:password@/dbname")
pool := &sql.DB{DB:p}
conn, err := pool.Conn(ctx)
defer conn.Close()
tx, _ := conn.BeginTx(ctx, nil)
opts := exports.SQLExportOptions{
SeriesToColumn: map[string]*string{
"Country": &[]string{"country"}[0],
"Age": &[]string{"age"}[0],
"Id": nil,
"Date": nil,
"Amount": nil,
},
PrimaryKey: &exports.PrimaryKey{
PrimaryKey: "uuid",
Value: func(row int, n int) *string {
str := uuid.NewV4().String()
return &str
},
},
BatchSize: &[]uint{50}[0],
Database: exports.MySQL,
}
err = exports.ExportToSQL(ctx, tx, df, "test", opts)
if err != nil {
tx.Rollback()
return
}
tx.Commit()
}
Types ¶
type CSVExportOptions ¶
type CSVExportOptions struct {
// NullString is used to set what nil values should be encoded to.
// Common options are NULL, \N, NaN, NA.
NullString *string
// Range is used to export a subset of rows from the dataframe.
Range dataframe.Range
// Separator is the field delimiter. A common option is ',', which is
// the default if CSVExportOptions is not provided.
Separator rune
// UseCRLF determines the line terminator.
// When true, it is set to \r\n.
UseCRLF bool
}
CSVExportOptions contains options for ExportToCSV function.
type Database ¶
type Database int
Database is used to set the Database. Different databases have different syntax for placeholders etc.
type ExcelExportOptions ¶
type ExcelExportOptions struct {
// NullString is used to set what nil values should be encoded to.
// Common options are NULL, \N, NaN, NA.
NullString *string
// Range is used to export a subset of rows from the Dataframe.
Range dataframe.Range
// WriteSheet is used to specify a sheet name.
// When not set, it defaults to "sheet1"
WriteSheet *string
}
ExcelExportOptions contains options for ExportToExcel function.
type JSONExportOptions ¶
type JSONExportOptions struct {
// NullString is used to set what nil values should be encoded to.
// Common options are strings: NULL, \N, NaN, NA.
// If not set, then null (non-string) is used.
NullString *string
// Range is used to export a subset of rows from the Dataframe.
Range dataframe.Range
// SetEscapeHTML specifies whether problematic HTML characters should be escaped inside JSON quoted strings.
// See: https://golang.org/pkg/encoding/json/#Encoder.SetEscapeHTML
SetEscapeHTML bool
}
JSONExportOptions contains options for ExportToJSON function.
type ParquetExportOptions ¶
type ParquetExportOptions struct {
// Range is used to export a subset of rows from the dataframe.
Range dataframe.Range
// PageSize defaults to 8K if not set set.
//
// See: https://godoc.org/github.com/xitongsys/parquet-go/writer#ParquetWriter
PageSize *int64
// CompressionType defaults to CompressionCodec_SNAPPY if not set.
//
// See: https://godoc.org/github.com/xitongsys/parquet-go/writer#ParquetWriter
CompressionType *parquet.CompressionCodec
// Offset defaults to 4 if not set.
//
// See: https://godoc.org/github.com/xitongsys/parquet-go/writer#ParquetWriter
Offset *int64
}
ParquetExportOptions contains options for ExportToParquet function.
type PrimaryKey ¶
type PrimaryKey struct {
// PrimaryKey is the column name of primary key
PrimaryKey string
// Value is a function that generates a primary key value given the row number
// and number of rows in the Dataframe.
// For auto-incrementing primary keys, nil can be returned.
Value func(row int, n int) *string
}
PrimaryKey is used to generate custom values for the primary key
type SQLExportOptions ¶
type SQLExportOptions struct {
// NullString is used to set what nil values should be encoded to.
// Common options are NULL, \N, NaN, NA.
NullString *string
// Range is used to export a subset of rows from the Dataframe.
Range dataframe.Range
// PrimaryKey is used if you want to generate custom values for the primary key
PrimaryKey *PrimaryKey
// BatchSize is used to insert data in batches.
// It is recommended a transaction is used so if 1 batch-insert fails, then all
// successfully inserted data can be rolled back.
// If set, it must not be 0.
BatchSize *uint
// SeriesToColumn is used to map the series name to the table's column name.
// The key of the map is the series name. Column names are case-sensitive.
// If the key does not exist, the series name is used by default.
// If the map value is nil, the series is ignored for the purposes of exporting.
SeriesToColumn map[string]*string
// Database is used to set the Database.
Database Database
}
SQLExportOptions contains options for ExportToSQL function.