Я пытаюсь прочитать таблицу на postgres db и загрузить данные в таблицу Hive на HDFS, как показано ниже:
val yearDF = spark.read.format("jdbc").option("url", connectionUrl).option("dbtable", s"(${execQuery}) as year2017")
.option("user", devUserName).option("password", devPassword)
.option("partitionColumn","source_system_name")
.option("lowerBound", 10000).option("upperBound", 50000)
.option("numPartitions",12).load()
Моя работа не выполняется с сообщением: Контейнер завершен с ненулевым значениемкод выхода 143 и проблема с GC.
Данные огромны и вызывают перекос в разделах.Изучив данные в таблице, я понял, что имя_источника_источника - неправильный столбец для разделения данных.Но я обнаружил, что комбинация из трех других столбцов: source_system_name, org_code, period
, которые лучше всего подходят для разделения данных при чтении и обработке.(Я сделал 'group by', чтобы узнать количество строк в таблице, и данные немного равномерно распределены по каждой группе) Но я не знаю, как я могу использовать все три столбца в partitionColumn
в spark-jdbcвариант.Может ли кто-нибудь дать мне знать, можно ли использовать несколько столбцов в опции: partitionColumn при чтении данных из таблицы RDBMS.