new action: jsonToParquet (#2)

Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com>
This commit is contained in:
Hadi
2025-09-24 22:51:10 +02:00
parent bb65864bd3
commit 224454bf51
2 changed files with 129 additions and 0 deletions

View File

@@ -29,6 +29,8 @@ func main() {
"infoParquet",
// Csv
"csvToParquet",
// JSON
"jsonToParquet",
// Misc
"mergeFiles",
"deleteFirstLines",
@@ -109,6 +111,26 @@ func main() {
log.Fatal("Failed to transform Csv file", "error", err)
}
return
case "jsonToParquet":
var inputFile *string = flag.StringP("input", "i", "", "Input Parquet file")
var outputFile *string = flag.StringP("output", "o", "", "Output Parquet file")
var compression *string = flag.StringP("compression", "c", "ZSTD", "Compression codec (UNCOMPRESSED, SNAPPY, GZIP, BROTLI, LZ4, ZSTD)")
var noColors *bool = flag.Bool("no-colors", false, "Remove all colors")
var debug *bool = flag.Bool("debug", false, "Debug mode")
flag.Parse()
if *inputFile == "" || *outputFile == "" {
log.Fatal("Input and output files are required")
}
if *noColors {
settings.DisableColors()
}
lu.Compression = *compression
lu.Debug = *debug
err := misc.JsonToParquet(lu, *inputFile, *outputFile)
if err != nil {
log.Fatal("Failed to transform JSON file", "error", err)
}
return
case "mergeFiles":
var inputFiles *[]string = flag.StringArrayP("inputs", "i", []string{}, "Input Parquet files")
var outputFile *string = flag.StringP("output", "o", "", "Output Parquet file")