hbase+spark:dataframe put不使用同一rowkey的null值替换现有列值

4uqofj5v  于 2021-06-09  发布在  Hbase
关注(0)|答案(0)|浏览(298)

我们将sparkDataframe持久化到hbase中。我们在将数据覆盖到hbase中时遇到了一个问题,即更新行中的一列的值为null,而之前的值不是null。
我们面临的问题如下:首先我们在hbase中插入一个Dataframe,如下所示:

val rowsList =Seq(Row("Acct1", "100", "1")Row("Acct2", "200", "2")).asJava

val schema: StructType =
  StructType(List(StructField("a", StringType, true),
    StructField("b", StringType, true),
    StructField("c", StringType, true)))

val df: DataFrame = sparkSession.createDataFrame(rowsList, schema)

然后,我们将这个Dataframe放入hbase中,它按预期工作。
覆盖现有行键时,如下所示:

val rowsList = Seq(Row("Acct2", null, "3")).asJava

val df: DataFrame = sparkSession.createDataFrame(rowsList, schema)

在这里,列“c”的值从“2”变为“3”。但此行仍有值为“200”的列“b”。
如何解决这个问题?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题