Writes data to JSON files (JSONL format) with support for chunking, buffering, null field processing, and automatic object store uploads.
JsonOutput writes data to JSON files in JSONL format (one JSON object per line) with support for chunking, buffering, null field processing, and automatic object store uploads. It inherits from the base Output class and provides specialized functionality for JSON data serialization.
JsonOutput
Classapplication_sdk.outputs.jsonOutputWrites data to JSON files (JSONL format) with support for chunking, buffering, null field processing, and automatic object store uploads.
Methods5
__init__
__init__(self, output_suffix: str, output_path: Optional[str] = None, typename: Optional[str] = None, chunk_start: Optional[int] = None, buffer_size: int = 5000, chunk_size: Optional[int] = 50000, start_marker: Optional[str] = None, end_marker: Optional[str] = None, retain_local_copy: bool = False)Parameters
output_suffixstroutput_pathOptional[str]typenameOptional[str]chunk_startOptional[int]buffer_sizeintchunk_sizeOptional[int]start_markerOptional[str]end_markerOptional[str]retain_local_copyboolwrite_dataframe
async write_dataframe(self, dataframe: pd.DataFrame) -> NoneParameters
dataframepd.DataFramewrite_batched_dataframe
async write_batched_dataframe(self, batch_df: pd.DataFrame) -> NoneParameters
batch_dfpd.DataFramewrite_daft_dataframe
async write_daft_dataframe(self, dataframe: daft.DataFrame, preserve_fields: Optional[List[str]] = None, null_to_empty_dict_fields: Optional[List[str]] = None) -> NoneParameters
dataframedaft.DataFramepreserve_fieldsOptional[List[str]]null_to_empty_dict_fieldsOptional[List[str]]flush_daft_buffer
async flush_daft_buffer(self, buffer: List[str], chunk_part: int = 0) -> NoneParameters
bufferList[str]chunk_partintUsage Examples
Basic initialization
Initialize JsonOutput with basic configuration
from application_sdk.outputs import JsonOutput
json_output = JsonOutput(
output_path="/tmp/output",
output_suffix="data",
typename="table",
chunk_size=50000,
buffer_size=5000
)
await json_output.write_dataframe(df)
With custom field preservation
Write with custom null field processing
await json_output.write_daft_dataframe(
daft_df,
preserve_fields=["required_field", "identity_cycle"],
null_to_empty_dict_fields=["attributes", "customAttributes"]
)
Usage patterns
For detailed usage patterns including JSONL format, null field processing, datetime conversion, and other JsonOutput-specific features, see Output usage patterns and select the JsonOutput tab.
See also
- Outputs: Base Output class and common usage patterns for all output types
- ParquetOutput: Write data to Parquet files with chunking and Hive partitioning
- IcebergOutput: Write data to Apache Iceberg tables with automatic table creation