Нулевые значения добавляются во все остальные столбцы таблицы HBASE для сопоставленного ключа при написании кадра данных, который имеет схему только ключа и 1 столбца - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь обновить основную таблицу (HBASE) только для 1 столбца, но происходит то, что все остальные столбцы для затронутых записей заполняются нулем.Есть ли способ уйти от этого?

Вот пример кода и результат, объясняющий проблему:

val DfEmpMaster = spark.read.format(BIGSQL).option("dbtable","EMP_MASTER_DETAIL").load() DfEmpMaster.show()

+------+--------+--------+------------+ |EMP_ID|EMP_NAME|EMP_ROLE|EMP_LOCATION| +------+--------+--------+------------+ | 13222| Steve| SDE| CAN| | 23241| Victor| Arch| USA| | 43233| Roger| MNGR| USA| | 45566| Scott| SDE| UK| | 54454|Karthick| SDE| India| +------+--------+--------+------------+

val DfEmpRole = spark.read.format(BIGSQL).option("dbtable", "EMP_ROLE").load() DfEmpRole.show() +------+--------+ |EMP_ID|EMP_ROLE| +------+--------+ | 45566| ARCH| +------+--------+

// Существует совпадение EMP_ID в таблице MASTER для 45566, и когда я его пишу, другие столбцы в таблицах MASTER заполняются нулем DfEmpRole.write.mode(SaveMode.Append).jdbc("EMP_MASTER_DETAIL")

// После обновления

val DfEmpMasterresult = spark.read.format(BIGSQL).option("dbtable", "EMP_MASTER_DETAIL").load() DfEmpMasterresult.show()

+------+--------+--------+------------+ |EMP_ID|EMP_NAME|EMP_ROLE|EMP_LOCATION| +------+--------+--------+------------+ | 13222| Steve| SDE| CAN| | 23241| Victor| Arch| USA| | 43233| Roger| MNGR| USA| | 45566| null| ARCH| null| | 54454|Karthick| SDE| India| +------+--------+--------+------------+

EMP_NAME и EMP_LOCATION добавляются с нулем.

...