Я написал простое приложение на Java maven, которое зависит от spark-hive_2.11 для преобразования JSON в ORC.
Мои текущие разделы приложения по годам, месяцам и дням, а затем записывает каждый разделкак файл ORC, однако теперь мне нужно разделить его по годам, месяцам, дням и группировать номера счетов.
ПРИМЕЧАНИЕ. Я не работаю с HDFS, Hive, Pig и т. д. Простопростое Java-приложение, которое использует Spark Session для организации и последующего преобразования JSON-записей в файлы ORC.
В качестве примера (для простоты, предположим, что используется только годовое разделение вместо года, месяца и дня), если бы у меня былоследующие данные:
Year Account
2009 Acct1
2009 Acct2
2009 Acct3
2009 Acct4
2009 Acct5
2009 Acct1
2009 Acct2
2009 Acct3
И я хотел бы разделить по годам и группам учетных записей (grouping 1: { Acct1, Acct2 }
и grouping 2: { Acct3, Acct4, Acct5 }
), я бы хотел разделы ORC, которые представляют:
Раздел 1:
Year Account
2009 Acct1
2009 Acct2
2009 Acct1
2009 Acct2
Раздел 2:
Year Account
2009 Acct3
2009 Acct4
2009 Acct5
2009 Acct3
Ниже приведен мой текущий код:
sparkSession.read()
.json("jsonFile.json")
.toDF()
.repartition(1)
.write()
.options(sparkOptions)
.partitionBy("year","month","day")
.mode(SaveMode.Overwrite)
.orc("orcDir");
Есть ли способ, в моем коде выше, создать группировкузначений столбцов для использования в качестве частиn ключ в дополнение к столбцам год, месяц, день?