Как разделить данные при чтении таблицы в spark-jdbc, если в ограничении первичного ключа задано несколько столбцов? - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь загрузить таблицу RDBMS из postgres в таблицу Hive на postgres.Для этого я написал следующую строку для извлечения данных:

val inputDF = spark.read.format("jdbc").option("url", connectionUrl).option("dbtable", s"(${query}) as inpData").option("user", devUserName).option("password", devPassword).option("partitionColumn","empID").
option("lowerBound", 14345745528L).option("upperBound", 1152921477111580662L).option("numPartitions",100).load()

spark-submit:

SPARK_MAJOR_VERSION=2 spark-submit --conf spark.ui.port=4090 --driver-class-path /home/repuser/jars/postgresql-42.1.4.jar  --jars /home/repuser/jars/postgresql-42.1.4.jar --num-executors 120 --executor-cores 15 --executor-memory 50G --driver-memory 30G --driver-cores 4 --class com.partition.source.datacount counter.11-0.1.jar --master=yarn --deploy-mode=cluster --keytab /home/repuser/repuser.keytab --principal repuser@DEV.COM --files /usr/hdp/current/spark2-client/conf/hive-site.xml,testconnection.properties --name Counter --conf spark.executor.extraClassPath=/home/repuser/jars/postgresql-42.1.4.jar

В таблице, которую я пытаюсь прочитать, есть столбец: orderID, который являетсяпервичный ключ и имеет уникальные значения.Нижняя граница значений: минимальное значение orderID и верхняя граница: максимальное значение даются вместе с именем столбца: orderID в значении: oprion ("partitionColumn", "orderID"), и код работает хорошо, собирая все данные из GreenPlumи вставлять те же данные в Hive.

Но есть несколько таблиц с двумя столбцами в качестве первичных ключей.Например, у меня есть таблица userLocation с двумя столбцами: referenceID & headerID в качестве ее первичного ключа.Есть ли способ использовать несколько имен столбцов в .option("partitionColumn", columnName).

Я понимаю, что параметр partitionColumn не обязательно должен быть столбцом первичного ключа.Если нет ни одного столбца с уникальными значениями, как, кто-нибудь может дать мне знать, как я могу разделить данные при чтении таблицы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...