InTouch Hub · Blue Isle Software

DataFrame

Pandas-like data science and ETL in pure Java, executed through JShell with Maven dependencies resolved automatically at run time.

Provided free and as is, without warranty of any kind — including merchantability, fitness for a particular purpose, and the accuracy or completeness of any result. See the licence. You are responsible for checking what this produces before relying on it.

dataetlexportextractimportloadsummarytransform

DataFrame Tool

Pandas-like data science and ETL in pure Java using JShell with automatic Maven dependency resolution.

Tool ID

dataframe

Credential Required

No

Operations

1. execute — Run Java code in JShell

Property Type Default Description
code string Required. Java code to execute in JShell
libraries string XML-formatted Maven dependency declarations
workingDir string INTOUCH_HOME/tasks/dataframe Working directory for execution
jshellCommand string jshell Path to jshell executable

Maven Dependencies

Specify dependencies using XML format in the libraries property:

<dependency>
    <groupId>tech.tablesaw</groupId>
    <artifactId>tablesaw-core</artifactId>
    <version>0.43.1</version>
</dependency>
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.10.1</version>
</dependency>

Dependencies are: - Downloaded from Maven Central on first use - Cached in {workingDir}/lib/ for subsequent runs - Automatically added to the JShell classpath

Code Environment

Example Code

// Import Tablesaw
import tech.tablesaw.api.*;
import tech.tablesaw.io.csv.*;

// Read a CSV
Table sales = Table.read().csv("/data/sales.csv");

// Filter and aggregate
Table result = sales
    .where(sales.stringColumn("region").isEqualTo("East"))
    .summarize("amount", AggregateFunctions.sum).by("product");

// Write results
result.write().csv("/data/east_sales_summary.csv");

// Publish a property
System.out.println("##intouch[set name=rowCount value=" + result.rowCount() + "]");

Published Outputs: - exitCode — JShell exit code - output — filtered stdout - Any properties set via ##intouch[set name=X value=Y] markers

Killable

Yes — destroys the JShell process forcibly.

Technology

Chaining Patterns

Use Cases

Limitations

Publishes

The keys a later task may reference as {{taskName.key}}. Referencing anything not listed here resolves to nothing at run time.