Reads a delimited separated text file into a series of rows. It's most common format is the comma separated values (csv), but this supports any value separated format (i.e. tab, colon, comma, pipe, etc). Here is a simple example:
csv( "/resources/titanic.csv" ).filter([ Embarked: "Q"]).go()Example changing the delimiter:
csv("/resources/pipe_separated_example.csv", "|") .filter([ someProperty: "someValue" ]) .go()Example header-less file:
csv("/resources/headerless.csv", "|", ["date", "status", "client-ip", "server-name", "url", "length", "thread", "user-agent", "referer"]) .filter { Map row -> row["server-name}.contains("myhostname") } .go()From external InputStream
csv( "External InputStream", stream, "|" ).filter( [ someColumn: "someValue" ] ).go()Using of to configure CsvSource.
CsvSource.of("/resources/titanic-unescaped.csv", "," ).escaping(false).into() .filter([ Embarked: "Q"]) .go()
Modifiers | Name | Description |
---|---|---|
static org.slf4j.Logger |
logger |
Type | Name and description |
---|---|
gratum.csv.CSVFile |
csvFile |
groovy.lang.Closure<java.lang.Void> |
headerClosure |
Type Params | Return Type | Name and description |
---|---|---|
|
static Pipeline |
csv(java.io.File filename, java.lang.String separator = ", java.util.List<java.lang.String> headers = null ) |
|
static Pipeline |
csv(java.lang.String filename, java.lang.String separator = ", java.util.List<java.lang.String> headers = null ) |
|
static Pipeline |
csv(java.lang.String name, java.io.InputStream stream, java.lang.String separator = ", java.util.List<java.lang.String> headers = null) |
|
void |
doStart(Pipeline pipeline) |
|
CsvSource |
escaping(boolean escaped) Turn on/off CSV escaping rules. |
|
CsvSource |
header(groovy.lang.Closure<java.lang.Void> headerClosure) Register a closure to receive the header before processing starts |
|
static CsvSource |
of(java.io.File file, java.lang.String separator = ", java.util.List<java.lang.String> headers = null) |
|
static CsvSource |
of(java.lang.String filename, java.lang.String separator = ", java.util.List<java.lang.String> headers = null) |
|
static CsvSource |
of(java.lang.String filename, java.io.InputStream stream, java.lang.String separator = ", java.util.List<java.lang.String> headers = null) |
|
void |
setEscaped(boolean escaped) |
|
void |
setHeaders(java.util.List<java.lang.String> headers) |
|
void |
setSeparator(java.lang.String separator) |
Turn on/off CSV escaping rules. Some files do not properly escape columns so turning off those rules can help in parsing such files. This means columns surrounded in double quotes will not be removed, or handling embedded separators within columns. Turning off escaping renders the parsing as a straight separator parse. The default is escaping is turned on.
escaped
- turn on (ie true) or turn off (ie false) escapingRegister a closure to receive the header before processing starts
headerClosure
- closure that is passed the ListGroovy Documentation