Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[kernel][Feature Request] Row based Parquet Writer with flush capability #3256

Open
1 of 8 tasks
Sandy3094 opened this issue Jun 11, 2024 · 1 comment
Open
1 of 8 tasks
Labels
enhancement New feature or request kernel

Comments

@Sandy3094
Copy link

Feature request

Which Delta project/connector is this regarding?

  • Spark
  • Standalone
  • Flink
  • Kernel
  • Other (fill in here)

Overview

Delta Kernel Default Engine's parquet writer accepts FilteredColumnarBatch. Is there any plan to have a Row based parquet writer?
For example org.apache.parquet.hadoop.ParquetWriter writes row by row and flushes the data to parquet file if a threshold is reached(rowGroupSize). This setting is to make sure we don't hit out of JVM heap space. Is there any similar mechanism while using Delta Kernel's Default parquet writer?

Further details

As a workaround I tried to use org.apache.parquet.hadoop.ParquetWriter to write to parquet files and use Delta Kernel to commit. But to use apache ParquetWriter we have to convert StructType to MessageType for which ParquetSchemaUtils.toParquetSchema needs to be exposed publicly. Delta-standalone has ParquetSchemaConverter but kernel doesn't have a publicly accessible converter.

Willingness to contribute

The Delta Lake Community encourages new feature contributions. Would you or another member of your organization be willing to contribute an implementation of this feature?

  • Yes. I can contribute this feature independently.
  • Yes. I would be willing to contribute this feature with guidance from the Delta Lake community.
  • No. I cannot contribute this feature at this time.
@Sandy3094 Sandy3094 added the enhancement New feature or request label Jun 11, 2024
@vkorukanti
Copy link
Collaborator

vkorukanti commented Jun 11, 2024

@Sandy3094 We have a config that you can pass in the Configuration object used in creating DefaultEngine.

delta.kernel.default.parquet.writer.targetMaxFileSize. Currently this is kind of private. If this is what you need, we can document this on the DefaultParquetHandler and DefaultEngine docs. Let me know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request kernel
Projects
None yet
Development

No branches or pull requests

2 participants