Я пытаюсь объединить несколько файлов паркета в несколько каталогов, используя Spark scala.
Код должен вычислять значение раздела на основе аргумента, предоставленного пользователем в командной строке. Основываясь на этом значении раздела, онобъединит файлы паркета, а затем добавит этот раздел в каталог /apps/..../<partition>
и объединит файлы и запишет в другое место
Я пытался сделать это с помощью сценария оболочки
сценарий оболочки
#!/bin/bash
daysToDeduct="$1"
day1=$((daysToDeduct-1))
DAY_1=`date --date="$day1 days ago" +%Y%m%d`
script.scala
val DAY1= sqlContext.read.parquet("/apps/..../$DAY_1/*").coalesce(1)
DAY1.write.mode(SaveMode.Overwrite).parquet(/tmp/.../$DAY_1/)
Предположим, я выполняю сценарий сегодня (8 октября 2019 года), а разделы присутствуют для 4-го октября, то есть /apps /.../ 20191003, затем
script.sh 5
val DAY1= sqlContext.read.parquet("/apps/..../20191003/*").coalesce(1)