首页 > 解决方案 > 写入仅具有键和 1 列模式的数据框时,将空值附加到 HBASE 表中的所有其他列以匹配键

问题描述

我正在尝试仅更新 1 列的主表 (HBASE),但发生的情况是受影响记录的所有其他列都填充了 null。有没有办法摆脱这种情况?

这是解释问题的示例代码片段和结果,

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| +------+--------+

// MASTER 表中有 EMP_ID 匹配 45566,当我写它时,MASTER 表中的其他列填充为 null 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 附加空值。

标签: scalaapache-sparkdataframejdbchbase

解决方案


推荐阅读