我们将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”。
如何解决这个问题?
暂无答案!
目前还没有任何答案,快来回答吧!