write

write, keyword

Writes table data to a file in the account filesystem.

Example

table Products = with
  [| as Product, as Color, as Price |]
  [| "shirt", "white", 10.50 |]
  [| "pants", "blue", 15.00 |]
  [| "hat", "red", 5.25 |]

write Products as "/sample/products.csv" with
  Product = Products.Product
  Color = Products.Color
  Price = Products.Price

show table "Products" with
  Products.Product
  Products.Color
  Products.Price

This outputs the following table:

Product Color Price
shirt white 10.5
pants blue 15
hat red 5.25

Remarks

File format is inferred from the extension (.csv, .tsv, .xlsx, .ion). Unknown extensions produce a runtime error. Only .ion supports ranvar, zedfunc, and embedding values. Writes are atomic and become visible only after the script completes. The write statement can be placed inside an if / else branch to perform conditional exports; see the if keyword. The order by clause is supported to control the row order of the exported file. When a schema declares an enum column, the source vector must already be of the same enum type; use enum<<X>> to convert from text. Mismatched enum types are rejected.

table enum Color = "white", "grey", "blue", "red"

schema '/sample/products.ion' with
  Product : text
  Color : enum Color
  Price : number

table Products = with
  [| as Product, as Color, as Price |]
  [| "shirt", "white", 10.50 |]
  [| "pants", "blue", 15.00 |]
  [| "hat", "red", 5.25 |]

Products.Color = enum<<Color>>(Products.Color)

write Products as '/sample/products.ion'

Metadata comments

Files produced by write can carry documentation comments using ///. These comments are surfaced in the Envision editor when inspecting downstream variables that originate from the file.

table Products = with
  [| as Product, as Units |]
  [| "shirt", 10 |]
  [| "pants", 15 |]

/// Products export
write Products as "/sample/products.tsv" with
  /// Product identifier
  Product = Products.Product
  /// Units sold
  Units = Products.Units

See also

User Contributed Notes
0 notes + add a note